From 71a3ea375d488ff8252425458c2ad13b4c4e91c2 Mon Sep 17 00:00:00 2001 From: paulboon Date: Sun, 5 May 2024 11:24:24 +0200 Subject: [PATCH 1/2] Initial implementation of a 3D model Previewer using the 'Online 3D Viewer' code --- 6.1curlcommands.md | 48 + previewers/betatest/O3DPreview.html | 39 + previewers/betatest/js/o3dview.js | 71 + .../lib/o3dv/libs/web-ifc-api-browser.js | 66263 ++++++++++++++++ .../betatest/lib/o3dv/libs/web-ifc.license.md | 375 + .../betatest/lib/o3dv/libs/web-ifc.wasm | Bin 0 -> 928213 bytes previewers/betatest/lib/o3dv/o3dv.license.md | 21 + previewers/betatest/lib/o3dv/o3dv.min.js | 3958 + 8 files changed, 70775 insertions(+) create mode 100644 previewers/betatest/O3DPreview.html create mode 100644 previewers/betatest/js/o3dview.js create mode 100644 previewers/betatest/lib/o3dv/libs/web-ifc-api-browser.js create mode 100644 previewers/betatest/lib/o3dv/libs/web-ifc.license.md create mode 100644 previewers/betatest/lib/o3dv/libs/web-ifc.wasm create mode 100644 previewers/betatest/lib/o3dv/o3dv.license.md create mode 100644 previewers/betatest/lib/o3dv/o3dv.min.js diff --git a/6.1curlcommands.md b/6.1curlcommands.md index ffb7feb..603f480 100644 --- a/6.1curlcommands.md +++ b/6.1curlcommands.md @@ -1496,3 +1496,51 @@ curl -X POST -H 'Content-type: application/json' http://localhost:8080/api/admin ## Beta Versions: As updates and additions are made, they will be added to a /betatest sub-folder which will make them accessible to users via github.io without affecting people who are using the latest numbered release (e.g. v1.4). When previewers in the betatest branch are included in the next release (e.g. v1.5), sites may wish to change their registration of the tools to use the stable version as the betatest version may continue to receive changes. + +### 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..108f7ab --- /dev/null +++ b/previewers/betatest/js/o3dview.js @@ -0,0 +1,71 @@ +$(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
+    const dataFile = new File([data], file.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 0000000000000000000000000000000000000000..d848dc2a0967e7cd833ce0d7d08747c9911c8622
GIT binary patch
literal 928213
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
z
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�M
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
z
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

Lk=vGB!3PqHvl!rFIe-1D6FPet?mKG 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

stI1I@gOYdgCk_~nVg2|J5E!<*p$ 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 K`z2UU$NvwEFD|hF literal 0 HcmV?d00001 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=` +

-_!T7i}9|dzvJacud#13+`x~;s;z3qN?MUqw&>7 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