(function (global, factory) {
  if (typeof define === "function" && define.amd) {
    define(["exports"], factory);
  } else if (typeof exports !== "undefined") {
    factory(exports);
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports);
    global.webIfcApi = mod.exports;
  }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcPolyLoop = _exports.IfcPointOnSurface = _exports.IfcPointOnCurve = _exports.IfcPoint = _exports.IfcPlateTypeEnum = _exports.IfcPlateType = _exports.IfcPlateStandardCase = _exports.IfcPlate = _exports.IfcPlaneAngleMeasure = _exports.IfcPlane = _exports.IfcPlanarForceMeasure = _exports.IfcPlanarExtent = _exports.IfcPlanarBox = _exports.IfcPlacement = _exports.IfcPixelTexture = _exports.IfcPipeSegmentTypeEnum = _exports.IfcPipeSegmentType = _exports.IfcPipeSegment = _exports.IfcPipeFittingTypeEnum = _exports.IfcPipeFittingType = _exports.IfcPipeFitting = _exports.IfcPileTypeEnum = _exports.IfcPileType = _exports.IfcPileConstructionEnum = _exports.IfcPile = _exports.IfcPhysicalSimpleQuantity = _exports.IfcPhysicalQuantity = _exports.IfcPhysicalOrVirtualEnum = _exports.IfcPhysicalComplexQuantity = _exports.IfcPersonAndOrganization = _exports.IfcPerson = _exports.IfcPermitTypeEnum = _exports.IfcPermit = _exports.IfcPermeableCoveringProperties = _exports.IfcPermeableCoveringOperationEnum = _exports.IfcPerformanceHistoryTypeEnum = _exports.IfcPerformanceHistory = _exports.IfcPcurve = _exports.IfcPath = _exports.IfcParameterizedProfileDef = _exports.IfcParameterValue = _exports.IfcPHMeasure = _exports.IfcOwnerHistory = _exports.IfcOutletTypeEnum = _exports.IfcOutletType = _exports.IfcOutlet = _exports.IfcOuterBoundaryCurve = _exports.IfcOrientedEdge = _exports.IfcOrientationExpression = _exports.IfcOrganizationRelationship = _exports.IfcOrganization = _exports.IfcOpeningStandardCase = _exports.IfcOpeningElementTypeEnum = _exports.IfcOpeningElement = _exports.IfcOpenShell = _exports.IfcOffsetCurveByDistances = _exports.IfcOffsetCurve3D = _exports.IfcOffsetCurve2D = _exports.IfcOffsetCurve = _exports.IfcOccupantTypeEnum = _exports.IfcOccupant = _exports.IfcObjectiveEnum = _exports.IfcObjective = _exports.IfcObjectTypeEnum = _exports.IfcObjectPlacement = _exports.IfcObjectDefinition = _exports.IfcObject = _exports.IfcNumericMeasure = _exports.IfcNullStyle = _exports.IfcNormalisedRatioMeasure = _exports.IfcNonNegativeLengthMeasure = _exports.IfcNamedUnit = _exports.IfcMotorConnectionTypeEnum = _exports.IfcMotorConnectionType = _exports.IfcMotorConnection = _exports.IfcMonthInYearNumber = _exports.IfcMonetaryUnit = _exports.IfcMonetaryMeasure = _exports.IfcMomentOfInertiaMeasure = _exports.IfcMolecularWeightMeasure = _exports.IfcMoistureDiffusivityMeasure = _exports.IfcModulusOfSubgradeReactionMeasure = _exports.IfcModulusOfRotationalSubgradeReactionMeasure = _exports.IfcModulusOfLinearSubgradeReactionMeasure = _exports.IfcModulusOfElasticityMeasure = _exports.IfcMirroredProfileDef = _exports.IfcMetric = _exports.IfcMemberTypeEnum = _exports.IfcMemberType = _exports.IfcMemberStandardCase = _exports.IfcMember = _exports.IfcMedicalDeviceTypeEnum = _exports.IfcMedicalDeviceType = _exports.IfcMedicalDevice = _exports.IfcMechanicalFastenerTypeEnum = _exports.IfcMechanicalFastenerType = _exports.IfcMechanicalFastener = _exports.IfcMeasureWithUnit = _exports.IfcMaterialUsageDefinition = _exports.IfcMaterialRelationship = _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcReferentTypeEnum = _exports.IfcReferent = _exports.IfcReference = _exports.IfcRecurrenceTypeEnum = _exports.IfcRecurrencePattern = _exports.IfcRectangularTrimmedSurface = _exports.IfcRectangularPyramid = _exports.IfcRectangleProfileDef = _exports.IfcRectangleHollowProfileDef = _exports.IfcReal = _exports.IfcRationalBSplineSurfaceWithKnots = _exports.IfcRationalBSplineCurveWithKnots = _exports.IfcRatioMeasure = _exports.IfcRampTypeEnum = _exports.IfcRampType = _exports.IfcRampFlightTypeEnum = _exports.IfcRampFlightType = _exports.IfcRampFlight = _exports.IfcRamp = _exports.IfcRailingTypeEnum = _exports.IfcRailingType = _exports.IfcRailing = _exports.IfcRadioActivityMeasure = _exports.IfcQuantityWeight = _exports.IfcQuantityVolume = _exports.IfcQuantityTime = _exports.IfcQuantitySet = _exports.IfcQuantityLength = _exports.IfcQuantityCount = _exports.IfcQuantityArea = _exports.IfcPumpTypeEnum = _exports.IfcPumpType = _exports.IfcPump = _exports.IfcProxy = _exports.IfcProtectiveDeviceTypeEnum = _exports.IfcProtectiveDeviceType = _exports.IfcProtectiveDeviceTrippingUnitTypeEnum = _exports.IfcProtectiveDeviceTrippingUnitType = _exports.IfcProtectiveDeviceTrippingUnit = _exports.IfcProtectiveDevice = _exports.IfcPropertyTemplateDefinition = _exports.IfcPropertyTemplate = _exports.IfcPropertyTableValue = _exports.IfcPropertySingleValue = _exports.IfcPropertySetTemplateTypeEnum = _exports.IfcPropertySetTemplate = _exports.IfcPropertySetDefinition = _exports.IfcPropertySet = _exports.IfcPropertyReferenceValue = _exports.IfcPropertyListValue = _exports.IfcPropertyEnumeration = _exports.IfcPropertyEnumeratedValue = _exports.IfcPropertyDependencyRelationship = _exports.IfcPropertyDefinition = _exports.IfcPropertyBoundedValue = _exports.IfcPropertyAbstraction = _exports.IfcProperty = _exports.IfcProjectionElementTypeEnum = _exports.IfcProjectionElement = _exports.IfcProjectedOrTrueLengthEnum = _exports.IfcProjectedCRS = _exports.IfcProjectOrderTypeEnum = _exports.IfcProjectOrder = _exports.IfcProjectLibrary = _exports.IfcProject = _exports.IfcProfileTypeEnum = _exports.IfcProfileProperties = _exports.IfcProfileDef = _exports.IfcProductRepresentation = _exports.IfcProductDefinitionShape = _exports.IfcProduct = _exports.IfcProcess = _exports.IfcProcedureTypeEnum = _exports.IfcProcedureType = _exports.IfcProcedure = _exports.IfcPressureMeasure = _exports.IfcPresentationStyleAssignment = _exports.IfcPresentationStyle = _exports.IfcPresentationLayerWithStyle = _exports.IfcPresentationLayerAssignment = _exports.IfcPresentationItem = _exports.IfcPresentableText = _exports.IfcPreferredSurfaceCurveRepresentation = _exports.IfcPreDefinedTextFont = _exports.IfcPreDefinedPropertySet = _exports.IfcPreDefinedProperties = _exports.IfcPreDefinedItem = _exports.IfcPreDefinedCurveFont = _exports.IfcPreDefinedColour = _exports.IfcPowerMeasure = _exports.IfcPostalAddress = _exports.IfcPositiveRatioMeasure = _exports.IfcPositivePlaneAngleMeasure = _exports.IfcPositiveLengthMeasure = _exports.IfcPositiveInteger = _exports.IfcPositioningElement = _exports.IfcPort = _exports.IfcPolyline = _exports.IfcPolygonalFaceSet = _exports.IfcPolygonalBoundedHalfSpace = _exports.IfcPolyLoop = _exports.IfcPointOnSurface = _exports.IfcPointOnCurve = _exports.IfcPoint = _exports.IfcPlateTypeEnum = _exports.IfcPlateType = _exports.IfcPlateStandardCase = _exports.IfcPlate = _exports.IfcPlaneAngleMeasure = _exports.IfcPlane = _exports.IfcPlanarForceMeasure = _exports.IfcPlanarExtent = _exports.IfcPlanarBox = _exports.IfcPlacement = _exports.IfcPixelTexture = _exports.IfcPipeSegmentTypeEnum = _exports.IfcPipeSegmentType = _exports.IfcPipeSegment = _exports.IfcPipeFittingTypeEnum = _exports.IfcPipeFittingType = _exports.IfcPipeFitting = _exports.IfcPileTypeEnum = _exports.IfcPileType = _exports.IfcPileConstructionEnum = _exports.IfcPile = _exports.IfcPhysicalSimpleQuantity = _exports.IfcPhysicalQuantity = _exports.IfcPhysicalOrVirtualEnum = _exports.IfcPhysicalComplexQuantity = _exports.IfcPersonAndOrganization = _exports.IfcPerson = _exports.IfcPermitTypeEnum = _exports.IfcPermit = _exports.IfcPermeableCoveringProperties = _exports.IfcPermeableCoveringOperationEnum = _exports.IfcPerformanceHistoryTypeEnum = _exports.IfcPerformanceHistory = _exports.IfcPcurve = _exports.IfcPath = _exports.IfcParameterizedProfileDef = _exports.IfcParameterValue = _exports.IfcPHMeasure = _exports.IfcOwnerHistory = _exports.IfcOutletTypeEnum = _exports.IfcOutletType = _exports.IfcOutlet = _exports.IfcOuterBoundaryCurve = _exports.IfcOrientedEdge = _exports.IfcOrientationExpression = _exports.IfcOrganizationRelationship = _exports.IfcOrganization = _exports.IfcOpeningStandardCase = _exports.IfcOpeningElementTypeEnum = _exports.IfcOpeningElement = _exports.IfcOpenShell = _exports.IfcOffsetCurveByDistances = _exports.IfcOffsetCurve3D = _exports.IfcOffsetCurve2D = _exports.IfcOffsetCurve = _exports.IfcOccupantTypeEnum = _exports.IfcOccupant = _exports.IfcObjectiveEnum = _exports.IfcObjective = _exports.IfcObjectTypeEnum = _exports.IfcObjectPlacement = _exports.IfcObjectDefinition = _exports.IfcObject = _exports.IfcNumericMeasure = _exports.IfcNullStyle = _exports.IfcNormalisedRatioMeasure = _exports.IfcNonNegativeLengthMeasure = _exports.IfcNamedUnit = _exports.IfcMotorConnectionTypeEnum = _exports.IfcMotorConnectionType = _exports.IfcMotorConnection = _exports.IfcMonthInYearNumber = _exports.IfcMonetaryUnit = _exports.IfcMonetaryMeasure = _exports.IfcMomentOfInertiaMeasure = _exports.IfcMolecularWeightMeasure = _exports.IfcMoistureDiffusivityMeasure = _exports.IfcModulusOfSubgradeReactionMeasure = _exports.IfcModulusOfRotationalSubgradeReactionMeasure = _exports.IfcModulusOfLinearSubgradeReactionMeasure = _exports.IfcModulusOfElasticityMeasure = _exports.IfcMirroredProfileDef = _exports.IfcMetric = _exports.IfcMemberTypeEnum = _exports.IfcMemberType = _exports.IfcMemberStandardCase = _exports.IfcMember = _exports.IfcMedicalDeviceTypeEnum = _exports.IfcMedicalDeviceType = _exports.IfcMedicalDevice = _exports.IfcMechanicalFastenerTypeEnum = _exports.IfcMechanicalFastenerType = _exports.IfcMechanicalFastener = _exports.IfcMeasureWithUnit = _exports.IfcMaterialUsageDefinition = _exports.IfcMaterialRelationship = _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcSectionedSolid = _exports.IfcSectionalAreaIntegralMeasure = _exports.IfcSectionTypeEnum = _exports.IfcSectionReinforcementProperties = _exports.IfcSectionProperties = _exports.IfcSectionModulusMeasure = _exports.IfcSeamCurve = _exports.IfcSchedulingTime = _exports.IfcSanitaryTerminalTypeEnum = _exports.IfcSanitaryTerminalType = _exports.IfcSanitaryTerminal = _exports.IfcSIUnitName = _exports.IfcSIUnit = _exports.IfcSIPrefix = _exports.IfcRoundedRectangleProfileDef = _exports.IfcRotationalStiffnessMeasure = _exports.IfcRotationalMassMeasure = _exports.IfcRotationalFrequencyMeasure = _exports.IfcRoot = _exports.IfcRoofTypeEnum = _exports.IfcRoofType = _exports.IfcRoof = _exports.IfcRoleEnum = _exports.IfcRightCircularCylinder = _exports.IfcRightCircularCone = _exports.IfcRevolvedAreaSolidTapered = _exports.IfcRevolvedAreaSolid = _exports.IfcResourceTime = _exports.IfcResourceLevelRelationship = _exports.IfcResourceConstraintRelationship = _exports.IfcResourceApprovalRelationship = _exports.IfcResource = _exports.IfcRepresentationMap = _exports.IfcRepresentationItem = _exports.IfcRepresentationContext = _exports.IfcRepresentation = _exports.IfcReparametrisedCompositeCurveSegment = _exports.IfcRelationship = _exports.IfcRelVoidsElement = _exports.IfcRelSpaceBoundary2ndLevel = _exports.IfcRelSpaceBoundary1stLevel = _exports.IfcRelSpaceBoundary = _exports.IfcRelServicesBuildings = _exports.IfcRelSequence = _exports.IfcRelReferencedInSpatialStructure = _exports.IfcRelProjectsElement = _exports.IfcRelPositions = _exports.IfcRelNests = _exports.IfcRelInterferesElements = _exports.IfcRelFlowControlElements = _exports.IfcRelFillsElement = _exports.IfcRelDefinesByType = _exports.IfcRelDefinesByTemplate = _exports.IfcRelDefinesByProperties = _exports.IfcRelDefinesByObject = _exports.IfcRelDefines = _exports.IfcRelDecomposes = _exports.IfcRelDeclares = _exports.IfcRelCoversSpaces = _exports.IfcRelCoversBldgElements = _exports.IfcRelContainedInSpatialStructure = _exports.IfcRelConnectsWithRealizingElements = _exports.IfcRelConnectsWithEccentricity = _exports.IfcRelConnectsStructuralMember = _exports.IfcRelConnectsStructuralActivity = _exports.IfcRelConnectsPorts = _exports.IfcRelConnectsPortToElement = _exports.IfcRelConnectsPathElements = _exports.IfcRelConnectsElements = _exports.IfcRelConnects = _exports.IfcRelAssociatesMaterial = _exports.IfcRelAssociatesLibrary = _exports.IfcRelAssociatesDocument = _exports.IfcRelAssociatesConstraint = _exports.IfcRelAssociatesClassification = _exports.IfcRelAssociatesApproval = _exports.IfcRelAssociates = _exports.IfcRelAssignsToResource = _exports.IfcRelAssignsToProduct = _exports.IfcRelAssignsToProcess = _exports.IfcRelAssignsToGroupByFactor = _exports.IfcRelAssignsToGroup = _exports.IfcRelAssignsToControl = _exports.IfcRelAssignsToActor = _exports.IfcRelAssigns = _exports.IfcRelAggregates = _exports.IfcReinforcingMeshTypeEnum = _exports.IfcReinforcingMeshType = _exports.IfcReinforcingMesh = _exports.IfcReinforcingElementType = _exports.IfcReinforcingElement = _exports.IfcReinforcingBarTypeEnum = _exports.IfcReinforcingBarType = _exports.IfcReinforcingBarSurfaceEnum = _exports.IfcReinforcingBarRoleEnum = _exports.IfcReinforcingBar = _exports.IfcReinforcementDefinitionProperties = _exports.IfcReinforcementBarProperties = _exports.IfcRegularTimeSeries = _exports.IfcReflectanceMethodEnum = _exports.IfcReferentTypeEnum = _exports.IfcReferent = _exports.IfcReference = _exports.IfcRecurrenceTypeEnum = _exports.IfcRecurrencePattern = _exports.IfcRectangularTrimmedSurface = _exports.IfcRectangularPyramid = _exports.IfcRectangleProfileDef = _exports.IfcRectangleHollowProfileDef = _exports.IfcReal = _exports.IfcRationalBSplineSurfaceWithKnots = _exports.IfcRationalBSplineCurveWithKnots = _exports.IfcRatioMeasure = _exports.IfcRampTypeEnum = _exports.IfcRampType = _exports.IfcRampFlightTypeEnum = _exports.IfcRampFlightType = _exports.IfcRampFlight = _exports.IfcRamp = _exports.IfcRailingTypeEnum = _exports.IfcRailingType = _exports.IfcRailing = _exports.IfcRadioActivityMeasure = _exports.IfcQuantityWeight = _exports.IfcQuantityVolume = _exports.IfcQuantityTime = _exports.IfcQuantitySet = _exports.IfcQuantityLength = _exports.IfcQuantityCount = _exports.IfcQuantityArea = _exports.IfcPumpTypeEnum = _exports.IfcPumpType = _exports.IfcPump = _exports.IfcProxy = _exports.IfcProtectiveDeviceTypeEnum = _exports.IfcProtectiveDeviceType = _exports.IfcProtectiveDeviceTrippingUnitTypeEnum = _exports.IfcProtectiveDeviceTrippingUnitType = _exports.IfcProtectiveDeviceTrippingUnit = _exports.IfcProtectiveDevice = _exports.IfcPropertyTemplateDefinition = _exports.IfcPropertyTemplate = _exports.IfcPropertyTableValue = _exports.IfcPropertySingleValue = _exports.IfcPropertySetTemplateTypeEnum = _exports.IfcPropertySetTemplate = _exports.IfcPropertySetDefinition = _exports.IfcPropertySet = _exports.IfcPropertyReferenceValue = _exports.IfcPropertyListValue = _exports.IfcPropertyEnumeration = _exports.IfcPropertyEnumeratedValue = _exports.IfcPropertyDependencyRelationship = _exports.IfcPropertyDefinition = _exports.IfcPropertyBoundedValue = _exports.IfcPropertyAbstraction = _exports.IfcProperty = _exports.IfcProjectionElementTypeEnum = _exports.IfcProjectionElement = _exports.IfcProjectedOrTrueLengthEnum = _exports.IfcProjectedCRS = _exports.IfcProjectOrderTypeEnum = _exports.IfcProjectOrder = _exports.IfcProjectLibrary = _exports.IfcProject = _exports.IfcProfileTypeEnum = _exports.IfcProfileProperties = _exports.IfcProfileDef = _exports.IfcProductRepresentation = _exports.IfcProductDefinitionShape = _exports.IfcProduct = _exports.IfcProcess = _exports.IfcProcedureTypeEnum = _exports.IfcProcedureType = _exports.IfcProcedure = _exports.IfcPressureMeasure = _exports.IfcPresentationStyleAssignment = _exports.IfcPresentationStyle = _exports.IfcPresentationLayerWithStyle = _exports.IfcPresentationLayerAssignment = _exports.IfcPresentationItem = _exports.IfcPresentableText = _exports.IfcPreferredSurfaceCurveRepresentation = _exports.IfcPreDefinedTextFont = _exports.IfcPreDefinedPropertySet = _exports.IfcPreDefinedProperties = _exports.IfcPreDefinedItem = _exports.IfcPreDefinedCurveFont = _exports.IfcPreDefinedColour = _exports.IfcPowerMeasure = _exports.IfcPostalAddress = _exports.IfcPositiveRatioMeasure = _exports.IfcPositivePlaneAngleMeasure = _exports.IfcPositiveLengthMeasure = _exports.IfcPositiveInteger = _exports.IfcPositioningElement = _exports.IfcPort = _exports.IfcPolyline = _exports.IfcPolygonalFaceSet = _exports.IfcPolygonalBoundedHalfSpace = _exports.IfcPolyLoop = _exports.IfcPointOnSurface = _exports.IfcPointOnCurve = _exports.IfcPoint = _exports.IfcPlateTypeEnum = _exports.IfcPlateType = _exports.IfcPlateStandardCase = _exports.IfcPlate = _exports.IfcPlaneAngleMeasure = _exports.IfcPlane = _exports.IfcPlanarForceMeasure = _exports.IfcPlanarExtent = _exports.IfcPlanarBox = _exports.IfcPlacement = _exports.IfcPixelTexture = _exports.IfcPipeSegmentTypeEnum = _exports.IfcPipeSegmentType = _exports.IfcPipeSegment = _exports.IfcPipeFittingTypeEnum = _exports.IfcPipeFittingType = _exports.IfcPipeFitting = _exports.IfcPileTypeEnum = _exports.IfcPileType = _exports.IfcPileConstructionEnum = _exports.IfcPile = _exports.IfcPhysicalSimpleQuantity = _exports.IfcPhysicalQuantity = _exports.IfcPhysicalOrVirtualEnum = _exports.IfcPhysicalComplexQuantity = _exports.IfcPersonAndOrganization = _exports.IfcPerson = _exports.IfcPermitTypeEnum = _exports.IfcPermit = _exports.IfcPermeableCoveringProperties = _exports.IfcPermeableCoveringOperationEnum = _exports.IfcPerformanceHistoryTypeEnum = _exports.IfcPerformanceHistory = _exports.IfcPcurve = _exports.IfcPath = _exports.IfcParameterizedProfileDef = _exports.IfcParameterValue = _exports.IfcPHMeasure = _exports.IfcOwnerHistory = _exports.IfcOutletTypeEnum = _exports.IfcOutletType = _exports.IfcOutlet = _exports.IfcOuterBoundaryCurve = _exports.IfcOrientedEdge = _exports.IfcOrientationExpression = _exports.IfcOrganizationRelationship = _exports.IfcOrganization = _exports.IfcOpeningStandardCase = _exports.IfcOpeningElementTypeEnum = _exports.IfcOpeningElement = _exports.IfcOpenShell = _exports.IfcOffsetCurveByDistances = _exports.IfcOffsetCurve3D = _exports.IfcOffsetCurve2D = _exports.IfcOffsetCurve = _exports.IfcOccupantTypeEnum = _exports.IfcOccupant = _exports.IfcObjectiveEnum = _exports.IfcObjective = _exports.IfcObjectTypeEnum = _exports.IfcObjectPlacement = _exports.IfcObjectDefinition = _exports.IfcObject = _exports.IfcNumericMeasure = _exports.IfcNullStyle = _exports.IfcNormalisedRatioMeasure = _exports.IfcNonNegativeLengthMeasure = _exports.IfcNamedUnit = _exports.IfcMotorConnectionTypeEnum = _exports.IfcMotorConnectionType = _exports.IfcMotorConnection = _exports.IfcMonthInYearNumber = _exports.IfcMonetaryUnit = _exports.IfcMonetaryMeasure = _exports.IfcMomentOfInertiaMeasure = _exports.IfcMolecularWeightMeasure = _exports.IfcMoistureDiffusivityMeasure = _exports.IfcModulusOfSubgradeReactionMeasure = _exports.IfcModulusOfRotationalSubgradeReactionMeasure = _exports.IfcModulusOfLinearSubgradeReactionMeasure = _exports.IfcModulusOfElasticityMeasure = _exports.IfcMirroredProfileDef = _exports.IfcMetric = _exports.IfcMemberTypeEnum = _exports.IfcMemberType = _exports.IfcMemberStandardCase = _exports.IfcMember = _exports.IfcMedicalDeviceTypeEnum = _exports.IfcMedicalDeviceType = _exports.IfcMedicalDevice = _exports.IfcMechanicalFastenerTypeEnum = _exports.IfcMechanicalFastenerType = _exports.IfcMechanicalFastener = _exports.IfcMeasureWithUnit = _exports.IfcMaterialUsageDefinition = _exports.IfcMaterialRelationship = _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcStructuralSurfaceMemberTypeEnum = _exports.IfcStructuralSurfaceMember = _exports.IfcStructuralSurfaceConnection = _exports.IfcStructuralSurfaceActivityTypeEnum = _exports.IfcStructuralSurfaceAction = _exports.IfcStructuralResultGroup = _exports.IfcStructuralReaction = _exports.IfcStructuralPointReaction = _exports.IfcStructuralPointConnection = _exports.IfcStructuralPointAction = _exports.IfcStructuralPlanarAction = _exports.IfcStructuralMember = _exports.IfcStructuralLoadTemperature = _exports.IfcStructuralLoadStatic = _exports.IfcStructuralLoadSingleForceWarping = _exports.IfcStructuralLoadSingleForce = _exports.IfcStructuralLoadSingleDisplacementDistortion = _exports.IfcStructuralLoadSingleDisplacement = _exports.IfcStructuralLoadPlanarForce = _exports.IfcStructuralLoadOrResult = _exports.IfcStructuralLoadLinearForce = _exports.IfcStructuralLoadGroup = _exports.IfcStructuralLoadConfiguration = _exports.IfcStructuralLoadCase = _exports.IfcStructuralLoad = _exports.IfcStructuralLinearAction = _exports.IfcStructuralItem = _exports.IfcStructuralCurveReaction = _exports.IfcStructuralCurveMemberVarying = _exports.IfcStructuralCurveMemberTypeEnum = _exports.IfcStructuralCurveMember = _exports.IfcStructuralCurveConnection = _exports.IfcStructuralCurveActivityTypeEnum = _exports.IfcStructuralCurveAction = _exports.IfcStructuralConnectionCondition = _exports.IfcStructuralConnection = _exports.IfcStructuralAnalysisModel = _exports.IfcStructuralActivity = _exports.IfcStructuralAction = _exports.IfcStateEnum = _exports.IfcStairTypeEnum = _exports.IfcStairType = _exports.IfcStairFlightTypeEnum = _exports.IfcStairFlightType = _exports.IfcStairFlight = _exports.IfcStair = _exports.IfcStackTerminalTypeEnum = _exports.IfcStackTerminalType = _exports.IfcStackTerminal = _exports.IfcSphericalSurface = _exports.IfcSphere = _exports.IfcSpecularRoughness = _exports.IfcSpecularExponent = _exports.IfcSpecificHeatCapacityMeasure = _exports.IfcSpatialZoneTypeEnum = _exports.IfcSpatialZoneType = _exports.IfcSpatialZone = _exports.IfcSpatialStructureElementType = _exports.IfcSpatialStructureElement = _exports.IfcSpatialElementType = _exports.IfcSpatialElement = _exports.IfcSpaceTypeEnum = _exports.IfcSpaceType = _exports.IfcSpaceHeaterTypeEnum = _exports.IfcSpaceHeaterType = _exports.IfcSpaceHeater = _exports.IfcSpace = _exports.IfcSoundPressureMeasure = _exports.IfcSoundPressureLevelMeasure = _exports.IfcSoundPowerMeasure = _exports.IfcSoundPowerLevelMeasure = _exports.IfcSolidModel = _exports.IfcSolidAngleMeasure = _exports.IfcSolarDeviceTypeEnum = _exports.IfcSolarDeviceType = _exports.IfcSolarDevice = _exports.IfcSlippageConnectionCondition = _exports.IfcSlabTypeEnum = _exports.IfcSlabType = _exports.IfcSlabStandardCase = _exports.IfcSlabElementedCase = _exports.IfcSlab = _exports.IfcSite = _exports.IfcSimplePropertyTemplateTypeEnum = _exports.IfcSimplePropertyTemplate = _exports.IfcSimpleProperty = _exports.IfcShellBasedSurfaceModel = _exports.IfcShearModulusMeasure = _exports.IfcShapeRepresentation = _exports.IfcShapeModel = _exports.IfcShapeAspect = _exports.IfcShadingDeviceTypeEnum = _exports.IfcShadingDeviceType = _exports.IfcShadingDevice = _exports.IfcSequenceEnum = _exports.IfcSensorTypeEnum = _exports.IfcSensorType = _exports.IfcSensor = _exports.IfcSectionedSpine = _exports.IfcSectionedSolidHorizontal = _exports.IfcSectionedSolid = _exports.IfcSectionalAreaIntegralMeasure = _exports.IfcSectionTypeEnum = _exports.IfcSectionReinforcementProperties = _exports.IfcSectionProperties = _exports.IfcSectionModulusMeasure = _exports.IfcSeamCurve = _exports.IfcSchedulingTime = _exports.IfcSanitaryTerminalTypeEnum = _exports.IfcSanitaryTerminalType = _exports.IfcSanitaryTerminal = _exports.IfcSIUnitName = _exports.IfcSIUnit = _exports.IfcSIPrefix = _exports.IfcRoundedRectangleProfileDef = _exports.IfcRotationalStiffnessMeasure = _exports.IfcRotationalMassMeasure = _exports.IfcRotationalFrequencyMeasure = _exports.IfcRoot = _exports.IfcRoofTypeEnum = _exports.IfcRoofType = _exports.IfcRoof = _exports.IfcRoleEnum = _exports.IfcRightCircularCylinder = _exports.IfcRightCircularCone = _exports.IfcRevolvedAreaSolidTapered = _exports.IfcRevolvedAreaSolid = _exports.IfcResourceTime = _exports.IfcResourceLevelRelationship = _exports.IfcResourceConstraintRelationship = _exports.IfcResourceApprovalRelationship = _exports.IfcResource = _exports.IfcRepresentationMap = _exports.IfcRepresentationItem = _exports.IfcRepresentationContext = _exports.IfcRepresentation = _exports.IfcReparametrisedCompositeCurveSegment = _exports.IfcRelationship = _exports.IfcRelVoidsElement = _exports.IfcRelSpaceBoundary2ndLevel = _exports.IfcRelSpaceBoundary1stLevel = _exports.IfcRelSpaceBoundary = _exports.IfcRelServicesBuildings = _exports.IfcRelSequence = _exports.IfcRelReferencedInSpatialStructure = _exports.IfcRelProjectsElement = _exports.IfcRelPositions = _exports.IfcRelNests = _exports.IfcRelInterferesElements = _exports.IfcRelFlowControlElements = _exports.IfcRelFillsElement = _exports.IfcRelDefinesByType = _exports.IfcRelDefinesByTemplate = _exports.IfcRelDefinesByProperties = _exports.IfcRelDefinesByObject = _exports.IfcRelDefines = _exports.IfcRelDecomposes = _exports.IfcRelDeclares = _exports.IfcRelCoversSpaces = _exports.IfcRelCoversBldgElements = _exports.IfcRelContainedInSpatialStructure = _exports.IfcRelConnectsWithRealizingElements = _exports.IfcRelConnectsWithEccentricity = _exports.IfcRelConnectsStructuralMember = _exports.IfcRelConnectsStructuralActivity = _exports.IfcRelConnectsPorts = _exports.IfcRelConnectsPortToElement = _exports.IfcRelConnectsPathElements = _exports.IfcRelConnectsElements = _exports.IfcRelConnects = _exports.IfcRelAssociatesMaterial = _exports.IfcRelAssociatesLibrary = _exports.IfcRelAssociatesDocument = _exports.IfcRelAssociatesConstraint = _exports.IfcRelAssociatesClassification = _exports.IfcRelAssociatesApproval = _exports.IfcRelAssociates = _exports.IfcRelAssignsToResource = _exports.IfcRelAssignsToProduct = _exports.IfcRelAssignsToProcess = _exports.IfcRelAssignsToGroupByFactor = _exports.IfcRelAssignsToGroup = _exports.IfcRelAssignsToControl = _exports.IfcRelAssignsToActor = _exports.IfcRelAssigns = _exports.IfcRelAggregates = _exports.IfcReinforcingMeshTypeEnum = _exports.IfcReinforcingMeshType = _exports.IfcReinforcingMesh = _exports.IfcReinforcingElementType = _exports.IfcReinforcingElement = _exports.IfcReinforcingBarTypeEnum = _exports.IfcReinforcingBarType = _exports.IfcReinforcingBarSurfaceEnum = _exports.IfcReinforcingBarRoleEnum = _exports.IfcReinforcingBar = _exports.IfcReinforcementDefinitionProperties = _exports.IfcReinforcementBarProperties = _exports.IfcRegularTimeSeries = _exports.IfcReflectanceMethodEnum = _exports.IfcReferentTypeEnum = _exports.IfcReferent = _exports.IfcReference = _exports.IfcRecurrenceTypeEnum = _exports.IfcRecurrencePattern = _exports.IfcRectangularTrimmedSurface = _exports.IfcRectangularPyramid = _exports.IfcRectangleProfileDef = _exports.IfcRectangleHollowProfileDef = _exports.IfcReal = _exports.IfcRationalBSplineSurfaceWithKnots = _exports.IfcRationalBSplineCurveWithKnots = _exports.IfcRatioMeasure = _exports.IfcRampTypeEnum = _exports.IfcRampType = _exports.IfcRampFlightTypeEnum = _exports.IfcRampFlightType = _exports.IfcRampFlight = _exports.IfcRamp = _exports.IfcRailingTypeEnum = _exports.IfcRailingType = _exports.IfcRailing = _exports.IfcRadioActivityMeasure = _exports.IfcQuantityWeight = _exports.IfcQuantityVolume = _exports.IfcQuantityTime = _exports.IfcQuantitySet = _exports.IfcQuantityLength = _exports.IfcQuantityCount = _exports.IfcQuantityArea = _exports.IfcPumpTypeEnum = _exports.IfcPumpType = _exports.IfcPump = _exports.IfcProxy = _exports.IfcProtectiveDeviceTypeEnum = _exports.IfcProtectiveDeviceType = _exports.IfcProtectiveDeviceTrippingUnitTypeEnum = _exports.IfcProtectiveDeviceTrippingUnitType = _exports.IfcProtectiveDeviceTrippingUnit = _exports.IfcProtectiveDevice = _exports.IfcPropertyTemplateDefinition = _exports.IfcPropertyTemplate = _exports.IfcPropertyTableValue = _exports.IfcPropertySingleValue = _exports.IfcPropertySetTemplateTypeEnum = _exports.IfcPropertySetTemplate = _exports.IfcPropertySetDefinition = _exports.IfcPropertySet = _exports.IfcPropertyReferenceValue = _exports.IfcPropertyListValue = _exports.IfcPropertyEnumeration = _exports.IfcPropertyEnumeratedValue = _exports.IfcPropertyDependencyRelationship = _exports.IfcPropertyDefinition = _exports.IfcPropertyBoundedValue = _exports.IfcPropertyAbstraction = _exports.IfcProperty = _exports.IfcProjectionElementTypeEnum = _exports.IfcProjectionElement = _exports.IfcProjectedOrTrueLengthEnum = _exports.IfcProjectedCRS = _exports.IfcProjectOrderTypeEnum = _exports.IfcProjectOrder = _exports.IfcProjectLibrary = _exports.IfcProject = _exports.IfcProfileTypeEnum = _exports.IfcProfileProperties = _exports.IfcProfileDef = _exports.IfcProductRepresentation = _exports.IfcProductDefinitionShape = _exports.IfcProduct = _exports.IfcProcess = _exports.IfcProcedureTypeEnum = _exports.IfcProcedureType = _exports.IfcProcedure = _exports.IfcPressureMeasure = _exports.IfcPresentationStyleAssignment = _exports.IfcPresentationStyle = _exports.IfcPresentationLayerWithStyle = _exports.IfcPresentationLayerAssignment = _exports.IfcPresentationItem = _exports.IfcPresentableText = _exports.IfcPreferredSurfaceCurveRepresentation = _exports.IfcPreDefinedTextFont = _exports.IfcPreDefinedPropertySet = _exports.IfcPreDefinedProperties = _exports.IfcPreDefinedItem = _exports.IfcPreDefinedCurveFont = _exports.IfcPreDefinedColour = _exports.IfcPowerMeasure = _exports.IfcPostalAddress = _exports.IfcPositiveRatioMeasure = _exports.IfcPositivePlaneAngleMeasure = _exports.IfcPositiveLengthMeasure = _exports.IfcPositiveInteger = _exports.IfcPositioningElement = _exports.IfcPort = _exports.IfcPolyline = _exports.IfcPolygonalFaceSet = _exports.IfcPolygonalBoundedHalfSpace = _exports.IfcPolyLoop = _exports.IfcPointOnSurface = _exports.IfcPointOnCurve = _exports.IfcPoint = _exports.IfcPlateTypeEnum = _exports.IfcPlateType = _exports.IfcPlateStandardCase = _exports.IfcPlate = _exports.IfcPlaneAngleMeasure = _exports.IfcPlane = _exports.IfcPlanarForceMeasure = _exports.IfcPlanarExtent = _exports.IfcPlanarBox = _exports.IfcPlacement = _exports.IfcPixelTexture = _exports.IfcPipeSegmentTypeEnum = _exports.IfcPipeSegmentType = _exports.IfcPipeSegment = _exports.IfcPipeFittingTypeEnum = _exports.IfcPipeFittingType = _exports.IfcPipeFitting = _exports.IfcPileTypeEnum = _exports.IfcPileType = _exports.IfcPileConstructionEnum = _exports.IfcPile = _exports.IfcPhysicalSimpleQuantity = _exports.IfcPhysicalQuantity = _exports.IfcPhysicalOrVirtualEnum = _exports.IfcPhysicalComplexQuantity = _exports.IfcPersonAndOrganization = _exports.IfcPerson = _exports.IfcPermitTypeEnum = _exports.IfcPermit = _exports.IfcPermeableCoveringProperties = _exports.IfcPermeableCoveringOperationEnum = _exports.IfcPerformanceHistoryTypeEnum = _exports.IfcPerformanceHistory = _exports.IfcPcurve = _exports.IfcPath = _exports.IfcParameterizedProfileDef = _exports.IfcParameterValue = _exports.IfcPHMeasure = _exports.IfcOwnerHistory = _exports.IfcOutletTypeEnum = _exports.IfcOutletType = _exports.IfcOutlet = _exports.IfcOuterBoundaryCurve = _exports.IfcOrientedEdge = _exports.IfcOrientationExpression = _exports.IfcOrganizationRelationship = _exports.IfcOrganization = _exports.IfcOpeningStandardCase = _exports.IfcOpeningElementTypeEnum = _exports.IfcOpeningElement = _exports.IfcOpenShell = _exports.IfcOffsetCurveByDistances = _exports.IfcOffsetCurve3D = _exports.IfcOffsetCurve2D = _exports.IfcOffsetCurve = _exports.IfcOccupantTypeEnum = _exports.IfcOccupant = _exports.IfcObjectiveEnum = _exports.IfcObjective = _exports.IfcObjectTypeEnum = _exports.IfcObjectPlacement = _exports.IfcObjectDefinition = _exports.IfcObject = _exports.IfcNumericMeasure = _exports.IfcNullStyle = _exports.IfcNormalisedRatioMeasure = _exports.IfcNonNegativeLengthMeasure = _exports.IfcNamedUnit = _exports.IfcMotorConnectionTypeEnum = _exports.IfcMotorConnectionType = _exports.IfcMotorConnection = _exports.IfcMonthInYearNumber = _exports.IfcMonetaryUnit = _exports.IfcMonetaryMeasure = _exports.IfcMomentOfInertiaMeasure = _exports.IfcMolecularWeightMeasure = _exports.IfcMoistureDiffusivityMeasure = _exports.IfcModulusOfSubgradeReactionMeasure = _exports.IfcModulusOfRotationalSubgradeReactionMeasure = _exports.IfcModulusOfLinearSubgradeReactionMeasure = _exports.IfcModulusOfElasticityMeasure = _exports.IfcMirroredProfileDef = _exports.IfcMetric = _exports.IfcMemberTypeEnum = _exports.IfcMemberType = _exports.IfcMemberStandardCase = _exports.IfcMember = _exports.IfcMedicalDeviceTypeEnum = _exports.IfcMedicalDeviceType = _exports.IfcMedicalDevice = _exports.IfcMechanicalFastenerTypeEnum = _exports.IfcMechanicalFastenerType = _exports.IfcMechanicalFastener = _exports.IfcMeasureWithUnit = _exports.IfcMaterialUsageDefinition = _exports.IfcMaterialRelationship = _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.IfcTransformerTypeEnum = _exports.IfcTransformerType = _exports.IfcTransformer = _exports.IfcTorqueMeasure = _exports.IfcToroidalSurface = _exports.IfcTopologyRepresentation = _exports.IfcTopologicalRepresentationItem = _exports.IfcTimeStamp = _exports.IfcTimeSeriesValue = _exports.IfcTimeSeriesDataTypeEnum = _exports.IfcTimeSeries = _exports.IfcTimePeriod = _exports.IfcTimeMeasure = _exports.IfcTime = _exports.IfcThermodynamicTemperatureMeasure = _exports.IfcThermalTransmittanceMeasure = _exports.IfcThermalResistanceMeasure = _exports.IfcThermalExpansionCoefficientMeasure = _exports.IfcThermalConductivityMeasure = _exports.IfcThermalAdmittanceMeasure = _exports.IfcTextureVertexList = _exports.IfcTextureVertex = _exports.IfcTextureMap = _exports.IfcTextureCoordinateGenerator = _exports.IfcTextureCoordinate = _exports.IfcTextTransformation = _exports.IfcTextStyleTextModel = _exports.IfcTextStyleForDefinedFont = _exports.IfcTextStyleFontModel = _exports.IfcTextStyle = _exports.IfcTextPath = _exports.IfcTextLiteralWithExtent = _exports.IfcTextLiteral = _exports.IfcTextFontName = _exports.IfcTextDecoration = _exports.IfcTextAlignment = _exports.IfcText = _exports.IfcTessellatedItem = _exports.IfcTessellatedFaceSet = _exports.IfcTendonTypeEnum = _exports.IfcTendonType = _exports.IfcTendonConduitTypeEnum = _exports.IfcTendonConduitType = _exports.IfcTendonConduit = _exports.IfcTendonAnchorTypeEnum = _exports.IfcTendonAnchorType = _exports.IfcTendonAnchor = _exports.IfcTendon = _exports.IfcTemperatureRateOfChangeMeasure = _exports.IfcTemperatureGradientMeasure = _exports.IfcTelecomAddress = _exports.IfcTaskTypeEnum = _exports.IfcTaskType = _exports.IfcTaskTimeRecurring = _exports.IfcTaskTime = _exports.IfcTaskDurationEnum = _exports.IfcTask = _exports.IfcTankTypeEnum = _exports.IfcTankType = _exports.IfcTank = _exports.IfcTableRow = _exports.IfcTableColumn = _exports.IfcTable = _exports.IfcTShapeProfileDef = _exports.IfcSystemFurnitureElementTypeEnum = _exports.IfcSystemFurnitureElementType = _exports.IfcSystemFurnitureElement = _exports.IfcSystem = _exports.IfcSwitchingDeviceTypeEnum = _exports.IfcSwitchingDeviceType = _exports.IfcSwitchingDevice = _exports.IfcSweptSurface = _exports.IfcSweptDiskSolidPolygonal = _exports.IfcSweptDiskSolid = _exports.IfcSweptAreaSolid = _exports.IfcSurfaceTexture = _exports.IfcSurfaceStyleWithTextures = _exports.IfcSurfaceStyleShading = _exports.IfcSurfaceStyleRendering = _exports.IfcSurfaceStyleRefraction = _exports.IfcSurfaceStyleLighting = _exports.IfcSurfaceStyle = _exports.IfcSurfaceSide = _exports.IfcSurfaceReinforcementArea = _exports.IfcSurfaceOfRevolution = _exports.IfcSurfaceOfLinearExtrusion = _exports.IfcSurfaceFeatureTypeEnum = _exports.IfcSurfaceFeature = _exports.IfcSurfaceCurveSweptAreaSolid = _exports.IfcSurfaceCurve = _exports.IfcSurface = _exports.IfcSubedge = _exports.IfcSubContractResourceTypeEnum = _exports.IfcSubContractResourceType = _exports.IfcSubContractResource = _exports.IfcStyledRepresentation = _exports.IfcStyledItem = _exports.IfcStyleModel = _exports.IfcStructuralSurfaceReaction = _exports.IfcStructuralSurfaceMemberVarying = _exports.IfcStructuralSurfaceMemberTypeEnum = _exports.IfcStructuralSurfaceMember = _exports.IfcStructuralSurfaceConnection = _exports.IfcStructuralSurfaceActivityTypeEnum = _exports.IfcStructuralSurfaceAction = _exports.IfcStructuralResultGroup = _exports.IfcStructuralReaction = _exports.IfcStructuralPointReaction = _exports.IfcStructuralPointConnection = _exports.IfcStructuralPointAction = _exports.IfcStructuralPlanarAction = _exports.IfcStructuralMember = _exports.IfcStructuralLoadTemperature = _exports.IfcStructuralLoadStatic = _exports.IfcStructuralLoadSingleForceWarping = _exports.IfcStructuralLoadSingleForce = _exports.IfcStructuralLoadSingleDisplacementDistortion = _exports.IfcStructuralLoadSingleDisplacement = _exports.IfcStructuralLoadPlanarForce = _exports.IfcStructuralLoadOrResult = _exports.IfcStructuralLoadLinearForce = _exports.IfcStructuralLoadGroup = _exports.IfcStructuralLoadConfiguration = _exports.IfcStructuralLoadCase = _exports.IfcStructuralLoad = _exports.IfcStructuralLinearAction = _exports.IfcStructuralItem = _exports.IfcStructuralCurveReaction = _exports.IfcStructuralCurveMemberVarying = _exports.IfcStructuralCurveMemberTypeEnum = _exports.IfcStructuralCurveMember = _exports.IfcStructuralCurveConnection = _exports.IfcStructuralCurveActivityTypeEnum = _exports.IfcStructuralCurveAction = _exports.IfcStructuralConnectionCondition = _exports.IfcStructuralConnection = _exports.IfcStructuralAnalysisModel = _exports.IfcStructuralActivity = _exports.IfcStructuralAction = _exports.IfcStateEnum = _exports.IfcStairTypeEnum = _exports.IfcStairType = _exports.IfcStairFlightTypeEnum = _exports.IfcStairFlightType = _exports.IfcStairFlight = _exports.IfcStair = _exports.IfcStackTerminalTypeEnum = _exports.IfcStackTerminalType = _exports.IfcStackTerminal = _exports.IfcSphericalSurface = _exports.IfcSphere = _exports.IfcSpecularRoughness = _exports.IfcSpecularExponent = _exports.IfcSpecificHeatCapacityMeasure = _exports.IfcSpatialZoneTypeEnum = _exports.IfcSpatialZoneType = _exports.IfcSpatialZone = _exports.IfcSpatialStructureElementType = _exports.IfcSpatialStructureElement = _exports.IfcSpatialElementType = _exports.IfcSpatialElement = _exports.IfcSpaceTypeEnum = _exports.IfcSpaceType = _exports.IfcSpaceHeaterTypeEnum = _exports.IfcSpaceHeaterType = _exports.IfcSpaceHeater = _exports.IfcSpace = _exports.IfcSoundPressureMeasure = _exports.IfcSoundPressureLevelMeasure = _exports.IfcSoundPowerMeasure = _exports.IfcSoundPowerLevelMeasure = _exports.IfcSolidModel = _exports.IfcSolidAngleMeasure = _exports.IfcSolarDeviceTypeEnum = _exports.IfcSolarDeviceType = _exports.IfcSolarDevice = _exports.IfcSlippageConnectionCondition = _exports.IfcSlabTypeEnum = _exports.IfcSlabType = _exports.IfcSlabStandardCase = _exports.IfcSlabElementedCase = _exports.IfcSlab = _exports.IfcSite = _exports.IfcSimplePropertyTemplateTypeEnum = _exports.IfcSimplePropertyTemplate = _exports.IfcSimpleProperty = _exports.IfcShellBasedSurfaceModel = _exports.IfcShearModulusMeasure = _exports.IfcShapeRepresentation = _exports.IfcShapeModel = _exports.IfcShapeAspect = _exports.IfcShadingDeviceTypeEnum = _exports.IfcShadingDeviceType = _exports.IfcShadingDevice = _exports.IfcSequenceEnum = _exports.IfcSensorTypeEnum = _exports.IfcSensorType = _exports.IfcSensor = _exports.IfcSectionedSpine = _exports.IfcSectionedSolidHorizontal = _exports.IfcSectionedSolid = _exports.IfcSectionalAreaIntegralMeasure = _exports.IfcSectionTypeEnum = _exports.IfcSectionReinforcementProperties = _exports.IfcSectionProperties = _exports.IfcSectionModulusMeasure = _exports.IfcSeamCurve = _exports.IfcSchedulingTime = _exports.IfcSanitaryTerminalTypeEnum = _exports.IfcSanitaryTerminalType = _exports.IfcSanitaryTerminal = _exports.IfcSIUnitName = _exports.IfcSIUnit = _exports.IfcSIPrefix = _exports.IfcRoundedRectangleProfileDef = _exports.IfcRotationalStiffnessMeasure = _exports.IfcRotationalMassMeasure = _exports.IfcRotationalFrequencyMeasure = _exports.IfcRoot = _exports.IfcRoofTypeEnum = _exports.IfcRoofType = _exports.IfcRoof = _exports.IfcRoleEnum = _exports.IfcRightCircularCylinder = _exports.IfcRightCircularCone = _exports.IfcRevolvedAreaSolidTapered = _exports.IfcRevolvedAreaSolid = _exports.IfcResourceTime = _exports.IfcResourceLevelRelationship = _exports.IfcResourceConstraintRelationship = _exports.IfcResourceApprovalRelationship = _exports.IfcResource = _exports.IfcRepresentationMap = _exports.IfcRepresentationItem = _exports.IfcRepresentationContext = _exports.IfcRepresentation = _exports.IfcReparametrisedCompositeCurveSegment = _exports.IfcRelationship = _exports.IfcRelVoidsElement = _exports.IfcRelSpaceBoundary2ndLevel = _exports.IfcRelSpaceBoundary1stLevel = _exports.IfcRelSpaceBoundary = _exports.IfcRelServicesBuildings = _exports.IfcRelSequence = _exports.IfcRelReferencedInSpatialStructure = _exports.IfcRelProjectsElement = _exports.IfcRelPositions = _exports.IfcRelNests = _exports.IfcRelInterferesElements = _exports.IfcRelFlowControlElements = _exports.IfcRelFillsElement = _exports.IfcRelDefinesByType = _exports.IfcRelDefinesByTemplate = _exports.IfcRelDefinesByProperties = _exports.IfcRelDefinesByObject = _exports.IfcRelDefines = _exports.IfcRelDecomposes = _exports.IfcRelDeclares = _exports.IfcRelCoversSpaces = _exports.IfcRelCoversBldgElements = _exports.IfcRelContainedInSpatialStructure = _exports.IfcRelConnectsWithRealizingElements = _exports.IfcRelConnectsWithEccentricity = _exports.IfcRelConnectsStructuralMember = _exports.IfcRelConnectsStructuralActivity = _exports.IfcRelConnectsPorts = _exports.IfcRelConnectsPortToElement = _exports.IfcRelConnectsPathElements = _exports.IfcRelConnectsElements = _exports.IfcRelConnects = _exports.IfcRelAssociatesMaterial = _exports.IfcRelAssociatesLibrary = _exports.IfcRelAssociatesDocument = _exports.IfcRelAssociatesConstraint = _exports.IfcRelAssociatesClassification = _exports.IfcRelAssociatesApproval = _exports.IfcRelAssociates = _exports.IfcRelAssignsToResource = _exports.IfcRelAssignsToProduct = _exports.IfcRelAssignsToProcess = _exports.IfcRelAssignsToGroupByFactor = _exports.IfcRelAssignsToGroup = _exports.IfcRelAssignsToControl = _exports.IfcRelAssignsToActor = _exports.IfcRelAssigns = _exports.IfcRelAggregates = _exports.IfcReinforcingMeshTypeEnum = _exports.IfcReinforcingMeshType = _exports.IfcReinforcingMesh = _exports.IfcReinforcingElementType = _exports.IfcReinforcingElement = _exports.IfcReinforcingBarTypeEnum = _exports.IfcReinforcingBarType = _exports.IfcReinforcingBarSurfaceEnum = _exports.IfcReinforcingBarRoleEnum = _exports.IfcReinforcingBar = _exports.IfcReinforcementDefinitionProperties = _exports.IfcReinforcementBarProperties = _exports.IfcRegularTimeSeries = _exports.IfcReflectanceMethodEnum = _exports.IfcReferentTypeEnum = _exports.IfcReferent = _exports.IfcReference = _exports.IfcRecurrenceTypeEnum = _exports.IfcRecurrencePattern = _exports.IfcRectangularTrimmedSurface = _exports.IfcRectangularPyramid = _exports.IfcRectangleProfileDef = _exports.IfcRectangleHollowProfileDef = _exports.IfcReal = _exports.IfcRationalBSplineSurfaceWithKnots = _exports.IfcRationalBSplineCurveWithKnots = _exports.IfcRatioMeasure = _exports.IfcRampTypeEnum = _exports.IfcRampType = _exports.IfcRampFlightTypeEnum = _exports.IfcRampFlightType = _exports.IfcRampFlight = _exports.IfcRamp = _exports.IfcRailingTypeEnum = _exports.IfcRailingType = _exports.IfcRailing = _exports.IfcRadioActivityMeasure = _exports.IfcQuantityWeight = _exports.IfcQuantityVolume = _exports.IfcQuantityTime = _exports.IfcQuantitySet = _exports.IfcQuantityLength = _exports.IfcQuantityCount = _exports.IfcQuantityArea = _exports.IfcPumpTypeEnum = _exports.IfcPumpType = _exports.IfcPump = _exports.IfcProxy = _exports.IfcProtectiveDeviceTypeEnum = _exports.IfcProtectiveDeviceType = _exports.IfcProtectiveDeviceTrippingUnitTypeEnum = _exports.IfcProtectiveDeviceTrippingUnitType = _exports.IfcProtectiveDeviceTrippingUnit = _exports.IfcProtectiveDevice = _exports.IfcPropertyTemplateDefinition = _exports.IfcPropertyTemplate = _exports.IfcPropertyTableValue = _exports.IfcPropertySingleValue = _exports.IfcPropertySetTemplateTypeEnum = _exports.IfcPropertySetTemplate = _exports.IfcPropertySetDefinition = _exports.IfcPropertySet = _exports.IfcPropertyReferenceValue = _exports.IfcPropertyListValue = _exports.IfcPropertyEnumeration = _exports.IfcPropertyEnumeratedValue = _exports.IfcPropertyDependencyRelationship = _exports.IfcPropertyDefinition = _exports.IfcPropertyBoundedValue = _exports.IfcPropertyAbstraction = _exports.IfcProperty = _exports.IfcProjectionElementTypeEnum = _exports.IfcProjectionElement = _exports.IfcProjectedOrTrueLengthEnum = _exports.IfcProjectedCRS = _exports.IfcProjectOrderTypeEnum = _exports.IfcProjectOrder = _exports.IfcProjectLibrary = _exports.IfcProject = _exports.IfcProfileTypeEnum = _exports.IfcProfileProperties = _exports.IfcProfileDef = _exports.IfcProductRepresentation = _exports.IfcProductDefinitionShape = _exports.IfcProduct = _exports.IfcProcess = _exports.IfcProcedureTypeEnum = _exports.IfcProcedureType = _exports.IfcProcedure = _exports.IfcPressureMeasure = _exports.IfcPresentationStyleAssignment = _exports.IfcPresentationStyle = _exports.IfcPresentationLayerWithStyle = _exports.IfcPresentationLayerAssignment = _exports.IfcPresentationItem = _exports.IfcPresentableText = _exports.IfcPreferredSurfaceCurveRepresentation = _exports.IfcPreDefinedTextFont = _exports.IfcPreDefinedPropertySet = _exports.IfcPreDefinedProperties = _exports.IfcPreDefinedItem = _exports.IfcPreDefinedCurveFont = _exports.IfcPreDefinedColour = _exports.IfcPowerMeasure = _exports.IfcPostalAddress = _exports.IfcPositiveRatioMeasure = _exports.IfcPositivePlaneAngleMeasure = _exports.IfcPositiveLengthMeasure = _exports.IfcPositiveInteger = _exports.IfcPositioningElement = _exports.IfcPort = _exports.IfcPolyline = _exports.IfcPolygonalFaceSet = _exports.IfcPolygonalBoundedHalfSpace = _exports.IfcPolyLoop = _exports.IfcPointOnSurface = _exports.IfcPointOnCurve = _exports.IfcPoint = _exports.IfcPlateTypeEnum = _exports.IfcPlateType = _exports.IfcPlateStandardCase = _exports.IfcPlate = _exports.IfcPlaneAngleMeasure = _exports.IfcPlane = _exports.IfcPlanarForceMeasure = _exports.IfcPlanarExtent = _exports.IfcPlanarBox = _exports.IfcPlacement = _exports.IfcPixelTexture = _exports.IfcPipeSegmentTypeEnum = _exports.IfcPipeSegmentType = _exports.IfcPipeSegment = _exports.IfcPipeFittingTypeEnum = _exports.IfcPipeFittingType = _exports.IfcPipeFitting = _exports.IfcPileTypeEnum = _exports.IfcPileType = _exports.IfcPileConstructionEnum = _exports.IfcPile = _exports.IfcPhysicalSimpleQuantity = _exports.IfcPhysicalQuantity = _exports.IfcPhysicalOrVirtualEnum = _exports.IfcPhysicalComplexQuantity = _exports.IfcPersonAndOrganization = _exports.IfcPerson = _exports.IfcPermitTypeEnum = _exports.IfcPermit = _exports.IfcPermeableCoveringProperties = _exports.IfcPermeableCoveringOperationEnum = _exports.IfcPerformanceHistoryTypeEnum = _exports.IfcPerformanceHistory = _exports.IfcPcurve = _exports.IfcPath = _exports.IfcParameterizedProfileDef = _exports.IfcParameterValue = _exports.IfcPHMeasure = _exports.IfcOwnerHistory = _exports.IfcOutletTypeEnum = _exports.IfcOutletType = _exports.IfcOutlet = _exports.IfcOuterBoundaryCurve = _exports.IfcOrientedEdge = _exports.IfcOrientationExpression = _exports.IfcOrganizationRelationship = _exports.IfcOrganization = _exports.IfcOpeningStandardCase = _exports.IfcOpeningElementTypeEnum = _exports.IfcOpeningElement = _exports.IfcOpenShell = _exports.IfcOffsetCurveByDistances = _exports.IfcOffsetCurve3D = _exports.IfcOffsetCurve2D = _exports.IfcOffsetCurve = _exports.IfcOccupantTypeEnum = _exports.IfcOccupant = _exports.IfcObjectiveEnum = _exports.IfcObjective = _exports.IfcObjectTypeEnum = _exports.IfcObjectPlacement = _exports.IfcObjectDefinition = _exports.IfcObject = _exports.IfcNumericMeasure = _exports.IfcNullStyle = _exports.IfcNormalisedRatioMeasure = _exports.IfcNonNegativeLengthMeasure = _exports.IfcNamedUnit = _exports.IfcMotorConnectionTypeEnum = _exports.IfcMotorConnectionType = _exports.IfcMotorConnection = _exports.IfcMonthInYearNumber = _exports.IfcMonetaryUnit = _exports.IfcMonetaryMeasure = _exports.IfcMomentOfInertiaMeasure = _exports.IfcMolecularWeightMeasure = _exports.IfcMoistureDiffusivityMeasure = _exports.IfcModulusOfSubgradeReactionMeasure = _exports.IfcModulusOfRotationalSubgradeReactionMeasure = _exports.IfcModulusOfLinearSubgradeReactionMeasure = _exports.IfcModulusOfElasticityMeasure = _exports.IfcMirroredProfileDef = _exports.IfcMetric = _exports.IfcMemberTypeEnum = _exports.IfcMemberType = _exports.IfcMemberStandardCase = _exports.IfcMember = _exports.IfcMedicalDeviceTypeEnum = _exports.IfcMedicalDeviceType = _exports.IfcMedicalDevice = _exports.IfcMechanicalFastenerTypeEnum = _exports.IfcMechanicalFastenerType = _exports.IfcMechanicalFastener = _exports.IfcMeasureWithUnit = _exports.IfcMaterialUsageDefinition = _exports.IfcMaterialRelationship = _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.UNKNOWN = _exports.STRING = _exports.SET_END = _exports.SET_BEGIN = _exports.REF = _exports.REAL = _exports.LINE_END = _exports.LABEL = _exports.IfcZone = _exports.IfcZShapeProfileDef = _exports.IfcWorkTime = _exports.IfcWorkScheduleTypeEnum = _exports.IfcWorkSchedule = _exports.IfcWorkPlanTypeEnum = _exports.IfcWorkPlan = _exports.IfcWorkControl = _exports.IfcWorkCalendarTypeEnum = _exports.IfcWorkCalendar = _exports.IfcWindowTypePartitioningEnum = _exports.IfcWindowTypeEnum = _exports.IfcWindowType = _exports.IfcWindowStyleOperationEnum = _exports.IfcWindowStyleConstructionEnum = _exports.IfcWindowStyle = _exports.IfcWindowStandardCase = _exports.IfcWindowPanelProperties = _exports.IfcWindowPanelPositionEnum = _exports.IfcWindowPanelOperationEnum = _exports.IfcWindowLiningProperties = _exports.IfcWindow = _exports.IfcWasteTerminalTypeEnum = _exports.IfcWasteTerminalType = _exports.IfcWasteTerminal = _exports.IfcWarpingMomentMeasure = _exports.IfcWarpingConstantMeasure = _exports.IfcWallTypeEnum = _exports.IfcWallType = _exports.IfcWallStandardCase = _exports.IfcWallElementedCase = _exports.IfcWall = _exports.IfcVolumetricFlowRateMeasure = _exports.IfcVolumeMeasure = _exports.IfcVoidingFeatureTypeEnum = _exports.IfcVoidingFeature = _exports.IfcVirtualGridIntersection = _exports.IfcVirtualElement = _exports.IfcVibrationIsolatorTypeEnum = _exports.IfcVibrationIsolatorType = _exports.IfcVibrationIsolator = _exports.IfcVibrationDamperTypeEnum = _exports.IfcVibrationDamperType = _exports.IfcVibrationDamper = _exports.IfcVertexPoint = _exports.IfcVertexLoop = _exports.IfcVertex = _exports.IfcVector = _exports.IfcVaporPermeabilityMeasure = _exports.IfcValveTypeEnum = _exports.IfcValveType = _exports.IfcValve = _exports.IfcUnitaryEquipmentTypeEnum = _exports.IfcUnitaryEquipmentType = _exports.IfcUnitaryEquipment = _exports.IfcUnitaryControlElementTypeEnum = _exports.IfcUnitaryControlElementType = _exports.IfcUnitaryControlElement = _exports.IfcUnitEnum = _exports.IfcUnitAssignment = _exports.IfcUShapeProfileDef = _exports.IfcURIReference = _exports.IfcTypeResource = _exports.IfcTypeProduct = _exports.IfcTypeProcess = _exports.IfcTypeObject = _exports.IfcTubeBundleTypeEnum = _exports.IfcTubeBundleType = _exports.IfcTubeBundle = _exports.IfcTrimmingPreference = _exports.IfcTrimmedCurve = _exports.IfcTriangulatedIrregularNetwork = _exports.IfcTriangulatedFaceSet = _exports.IfcTrapeziumProfileDef = _exports.IfcTransportElementTypeEnum = _exports.IfcTransportElementType = _exports.IfcTransportElement = _exports.IfcTransitionCurveType = _exports.IfcTransitionCurveSegment2D = _exports.IfcTransitionCode = _exports.IfcTransformerTypeEnum = _exports.IfcTransformerType = _exports.IfcTransformer = _exports.IfcTorqueMeasure = _exports.IfcToroidalSurface = _exports.IfcTopologyRepresentation = _exports.IfcTopologicalRepresentationItem = _exports.IfcTimeStamp = _exports.IfcTimeSeriesValue = _exports.IfcTimeSeriesDataTypeEnum = _exports.IfcTimeSeries = _exports.IfcTimePeriod = _exports.IfcTimeMeasure = _exports.IfcTime = _exports.IfcThermodynamicTemperatureMeasure = _exports.IfcThermalTransmittanceMeasure = _exports.IfcThermalResistanceMeasure = _exports.IfcThermalExpansionCoefficientMeasure = _exports.IfcThermalConductivityMeasure = _exports.IfcThermalAdmittanceMeasure = _exports.IfcTextureVertexList = _exports.IfcTextureVertex = _exports.IfcTextureMap = _exports.IfcTextureCoordinateGenerator = _exports.IfcTextureCoordinate = _exports.IfcTextTransformation = _exports.IfcTextStyleTextModel = _exports.IfcTextStyleForDefinedFont = _exports.IfcTextStyleFontModel = _exports.IfcTextStyle = _exports.IfcTextPath = _exports.IfcTextLiteralWithExtent = _exports.IfcTextLiteral = _exports.IfcTextFontName = _exports.IfcTextDecoration = _exports.IfcTextAlignment = _exports.IfcText = _exports.IfcTessellatedItem = _exports.IfcTessellatedFaceSet = _exports.IfcTendonTypeEnum = _exports.IfcTendonType = _exports.IfcTendonConduitTypeEnum = _exports.IfcTendonConduitType = _exports.IfcTendonConduit = _exports.IfcTendonAnchorTypeEnum = _exports.IfcTendonAnchorType = _exports.IfcTendonAnchor = _exports.IfcTendon = _exports.IfcTemperatureRateOfChangeMeasure = _exports.IfcTemperatureGradientMeasure = _exports.IfcTelecomAddress = _exports.IfcTaskTypeEnum = _exports.IfcTaskType = _exports.IfcTaskTimeRecurring = _exports.IfcTaskTime = _exports.IfcTaskDurationEnum = _exports.IfcTask = _exports.IfcTankTypeEnum = _exports.IfcTankType = _exports.IfcTank = _exports.IfcTableRow = _exports.IfcTableColumn = _exports.IfcTable = _exports.IfcTShapeProfileDef = _exports.IfcSystemFurnitureElementTypeEnum = _exports.IfcSystemFurnitureElementType = _exports.IfcSystemFurnitureElement = _exports.IfcSystem = _exports.IfcSwitchingDeviceTypeEnum = _exports.IfcSwitchingDeviceType = _exports.IfcSwitchingDevice = _exports.IfcSweptSurface = _exports.IfcSweptDiskSolidPolygonal = _exports.IfcSweptDiskSolid = _exports.IfcSweptAreaSolid = _exports.IfcSurfaceTexture = _exports.IfcSurfaceStyleWithTextures = _exports.IfcSurfaceStyleShading = _exports.IfcSurfaceStyleRendering = _exports.IfcSurfaceStyleRefraction = _exports.IfcSurfaceStyleLighting = _exports.IfcSurfaceStyle = _exports.IfcSurfaceSide = _exports.IfcSurfaceReinforcementArea = _exports.IfcSurfaceOfRevolution = _exports.IfcSurfaceOfLinearExtrusion = _exports.IfcSurfaceFeatureTypeEnum = _exports.IfcSurfaceFeature = _exports.IfcSurfaceCurveSweptAreaSolid = _exports.IfcSurfaceCurve = _exports.IfcSurface = _exports.IfcSubedge = _exports.IfcSubContractResourceTypeEnum = _exports.IfcSubContractResourceType = _exports.IfcSubContractResource = _exports.IfcStyledRepresentation = _exports.IfcStyledItem = _exports.IfcStyleModel = _exports.IfcStructuralSurfaceReaction = _exports.IfcStructuralSurfaceMemberVarying = _exports.IfcStructuralSurfaceMemberTypeEnum = _exports.IfcStructuralSurfaceMember = _exports.IfcStructuralSurfaceConnection = _exports.IfcStructuralSurfaceActivityTypeEnum = _exports.IfcStructuralSurfaceAction = _exports.IfcStructuralResultGroup = _exports.IfcStructuralReaction = _exports.IfcStructuralPointReaction = _exports.IfcStructuralPointConnection = _exports.IfcStructuralPointAction = _exports.IfcStructuralPlanarAction = _exports.IfcStructuralMember = _exports.IfcStructuralLoadTemperature = _exports.IfcStructuralLoadStatic = _exports.IfcStructuralLoadSingleForceWarping = _exports.IfcStructuralLoadSingleForce = _exports.IfcStructuralLoadSingleDisplacementDistortion = _exports.IfcStructuralLoadSingleDisplacement = _exports.IfcStructuralLoadPlanarForce = _exports.IfcStructuralLoadOrResult = _exports.IfcStructuralLoadLinearForce = _exports.IfcStructuralLoadGroup = _exports.IfcStructuralLoadConfiguration = _exports.IfcStructuralLoadCase = _exports.IfcStructuralLoad = _exports.IfcStructuralLinearAction = _exports.IfcStructuralItem = _exports.IfcStructuralCurveReaction = _exports.IfcStructuralCurveMemberVarying = _exports.IfcStructuralCurveMemberTypeEnum = _exports.IfcStructuralCurveMember = _exports.IfcStructuralCurveConnection = _exports.IfcStructuralCurveActivityTypeEnum = _exports.IfcStructuralCurveAction = _exports.IfcStructuralConnectionCondition = _exports.IfcStructuralConnection = _exports.IfcStructuralAnalysisModel = _exports.IfcStructuralActivity = _exports.IfcStructuralAction = _exports.IfcStateEnum = _exports.IfcStairTypeEnum = _exports.IfcStairType = _exports.IfcStairFlightTypeEnum = _exports.IfcStairFlightType = _exports.IfcStairFlight = _exports.IfcStair = _exports.IfcStackTerminalTypeEnum = _exports.IfcStackTerminalType = _exports.IfcStackTerminal = _exports.IfcSphericalSurface = _exports.IfcSphere = _exports.IfcSpecularRoughness = _exports.IfcSpecularExponent = _exports.IfcSpecificHeatCapacityMeasure = _exports.IfcSpatialZoneTypeEnum = _exports.IfcSpatialZoneType = _exports.IfcSpatialZone = _exports.IfcSpatialStructureElementType = _exports.IfcSpatialStructureElement = _exports.IfcSpatialElementType = _exports.IfcSpatialElement = _exports.IfcSpaceTypeEnum = _exports.IfcSpaceType = _exports.IfcSpaceHeaterTypeEnum = _exports.IfcSpaceHeaterType = _exports.IfcSpaceHeater = _exports.IfcSpace = _exports.IfcSoundPressureMeasure = _exports.IfcSoundPressureLevelMeasure = _exports.IfcSoundPowerMeasure = _exports.IfcSoundPowerLevelMeasure = _exports.IfcSolidModel = _exports.IfcSolidAngleMeasure = _exports.IfcSolarDeviceTypeEnum = _exports.IfcSolarDeviceType = _exports.IfcSolarDevice = _exports.IfcSlippageConnectionCondition = _exports.IfcSlabTypeEnum = _exports.IfcSlabType = _exports.IfcSlabStandardCase = _exports.IfcSlabElementedCase = _exports.IfcSlab = _exports.IfcSite = _exports.IfcSimplePropertyTemplateTypeEnum = _exports.IfcSimplePropertyTemplate = _exports.IfcSimpleProperty = _exports.IfcShellBasedSurfaceModel = _exports.IfcShearModulusMeasure = _exports.IfcShapeRepresentation = _exports.IfcShapeModel = _exports.IfcShapeAspect = _exports.IfcShadingDeviceTypeEnum = _exports.IfcShadingDeviceType = _exports.IfcShadingDevice = _exports.IfcSequenceEnum = _exports.IfcSensorTypeEnum = _exports.IfcSensorType = _exports.IfcSensor = _exports.IfcSectionedSpine = _exports.IfcSectionedSolidHorizontal = _exports.IfcSectionedSolid = _exports.IfcSectionalAreaIntegralMeasure = _exports.IfcSectionTypeEnum = _exports.IfcSectionReinforcementProperties = _exports.IfcSectionProperties = _exports.IfcSectionModulusMeasure = _exports.IfcSeamCurve = _exports.IfcSchedulingTime = _exports.IfcSanitaryTerminalTypeEnum = _exports.IfcSanitaryTerminalType = _exports.IfcSanitaryTerminal = _exports.IfcSIUnitName = _exports.IfcSIUnit = _exports.IfcSIPrefix = _exports.IfcRoundedRectangleProfileDef = _exports.IfcRotationalStiffnessMeasure = _exports.IfcRotationalMassMeasure = _exports.IfcRotationalFrequencyMeasure = _exports.IfcRoot = _exports.IfcRoofTypeEnum = _exports.IfcRoofType = _exports.IfcRoof = _exports.IfcRoleEnum = _exports.IfcRightCircularCylinder = _exports.IfcRightCircularCone = _exports.IfcRevolvedAreaSolidTapered = _exports.IfcRevolvedAreaSolid = _exports.IfcResourceTime = _exports.IfcResourceLevelRelationship = _exports.IfcResourceConstraintRelationship = _exports.IfcResourceApprovalRelationship = _exports.IfcResource = _exports.IfcRepresentationMap = _exports.IfcRepresentationItem = _exports.IfcRepresentationContext = _exports.IfcRepresentation = _exports.IfcReparametrisedCompositeCurveSegment = _exports.IfcRelationship = _exports.IfcRelVoidsElement = _exports.IfcRelSpaceBoundary2ndLevel = _exports.IfcRelSpaceBoundary1stLevel = _exports.IfcRelSpaceBoundary = _exports.IfcRelServicesBuildings = _exports.IfcRelSequence = _exports.IfcRelReferencedInSpatialStructure = _exports.IfcRelProjectsElement = _exports.IfcRelPositions = _exports.IfcRelNests = _exports.IfcRelInterferesElements = _exports.IfcRelFlowControlElements = _exports.IfcRelFillsElement = _exports.IfcRelDefinesByType = _exports.IfcRelDefinesByTemplate = _exports.IfcRelDefinesByProperties = _exports.IfcRelDefinesByObject = _exports.IfcRelDefines = _exports.IfcRelDecomposes = _exports.IfcRelDeclares = _exports.IfcRelCoversSpaces = _exports.IfcRelCoversBldgElements = _exports.IfcRelContainedInSpatialStructure = _exports.IfcRelConnectsWithRealizingElements = _exports.IfcRelConnectsWithEccentricity = _exports.IfcRelConnectsStructuralMember = _exports.IfcRelConnectsStructuralActivity = _exports.IfcRelConnectsPorts = _exports.IfcRelConnectsPortToElement = _exports.IfcRelConnectsPathElements = _exports.IfcRelConnectsElements = _exports.IfcRelConnects = _exports.IfcRelAssociatesMaterial = _exports.IfcRelAssociatesLibrary = _exports.IfcRelAssociatesDocument = _exports.IfcRelAssociatesConstraint = _exports.IfcRelAssociatesClassification = _exports.IfcRelAssociatesApproval = _exports.IfcRelAssociates = _exports.IfcRelAssignsToResource = _exports.IfcRelAssignsToProduct = _exports.IfcRelAssignsToProcess = _exports.IfcRelAssignsToGroupByFactor = _exports.IfcRelAssignsToGroup = _exports.IfcRelAssignsToControl = _exports.IfcRelAssignsToActor = _exports.IfcRelAssigns = _exports.IfcRelAggregates = _exports.IfcReinforcingMeshTypeEnum = _exports.IfcReinforcingMeshType = _exports.IfcReinforcingMesh = _exports.IfcReinforcingElementType = _exports.IfcReinforcingElement = _exports.IfcReinforcingBarTypeEnum = _exports.IfcReinforcingBarType = _exports.IfcReinforcingBarSurfaceEnum = _exports.IfcReinforcingBarRoleEnum = _exports.IfcReinforcingBar = _exports.IfcReinforcementDefinitionProperties = _exports.IfcReinforcementBarProperties = _exports.IfcRegularTimeSeries = _exports.IfcReflectanceMethodEnum = _exports.IfcReferentTypeEnum = _exports.IfcReferent = _exports.IfcReference = _exports.IfcRecurrenceTypeEnum = _exports.IfcRecurrencePattern = _exports.IfcRectangularTrimmedSurface = _exports.IfcRectangularPyramid = _exports.IfcRectangleProfileDef = _exports.IfcRectangleHollowProfileDef = _exports.IfcReal = _exports.IfcRationalBSplineSurfaceWithKnots = _exports.IfcRationalBSplineCurveWithKnots = _exports.IfcRatioMeasure = _exports.IfcRampTypeEnum = _exports.IfcRampType = _exports.IfcRampFlightTypeEnum = _exports.IfcRampFlightType = _exports.IfcRampFlight = _exports.IfcRamp = _exports.IfcRailingTypeEnum = _exports.IfcRailingType = _exports.IfcRailing = _exports.IfcRadioActivityMeasure = _exports.IfcQuantityWeight = _exports.IfcQuantityVolume = _exports.IfcQuantityTime = _exports.IfcQuantitySet = _exports.IfcQuantityLength = _exports.IfcQuantityCount = _exports.IfcQuantityArea = _exports.IfcPumpTypeEnum = _exports.IfcPumpType = _exports.IfcPump = _exports.IfcProxy = _exports.IfcProtectiveDeviceTypeEnum = _exports.IfcProtectiveDeviceType = _exports.IfcProtectiveDeviceTrippingUnitTypeEnum = _exports.IfcProtectiveDeviceTrippingUnitType = _exports.IfcProtectiveDeviceTrippingUnit = _exports.IfcProtectiveDevice = _exports.IfcPropertyTemplateDefinition = _exports.IfcPropertyTemplate = _exports.IfcPropertyTableValue = _exports.IfcPropertySingleValue = _exports.IfcPropertySetTemplateTypeEnum = _exports.IfcPropertySetTemplate = _exports.IfcPropertySetDefinition = _exports.IfcPropertySet = _exports.IfcPropertyReferenceValue = _exports.IfcPropertyListValue = _exports.IfcPropertyEnumeration = _exports.IfcPropertyEnumeratedValue = _exports.IfcPropertyDependencyRelationship = _exports.IfcPropertyDefinition = _exports.IfcPropertyBoundedValue = _exports.IfcPropertyAbstraction = _exports.IfcProperty = _exports.IfcProjectionElementTypeEnum = _exports.IfcProjectionElement = _exports.IfcProjectedOrTrueLengthEnum = _exports.IfcProjectedCRS = _exports.IfcProjectOrderTypeEnum = _exports.IfcProjectOrder = _exports.IfcProjectLibrary = _exports.IfcProject = _exports.IfcProfileTypeEnum = _exports.IfcProfileProperties = _exports.IfcProfileDef = _exports.IfcProductRepresentation = _exports.IfcProductDefinitionShape = _exports.IfcProduct = _exports.IfcProcess = _exports.IfcProcedureTypeEnum = _exports.IfcProcedureType = _exports.IfcProcedure = _exports.IfcPressureMeasure = _exports.IfcPresentationStyleAssignment = _exports.IfcPresentationStyle = _exports.IfcPresentationLayerWithStyle = _exports.IfcPresentationLayerAssignment = _exports.IfcPresentationItem = _exports.IfcPresentableText = _exports.IfcPreferredSurfaceCurveRepresentation = _exports.IfcPreDefinedTextFont = _exports.IfcPreDefinedPropertySet = _exports.IfcPreDefinedProperties = _exports.IfcPreDefinedItem = _exports.IfcPreDefinedCurveFont = _exports.IfcPreDefinedColour = _exports.IfcPowerMeasure = _exports.IfcPostalAddress = _exports.IfcPositiveRatioMeasure = _exports.IfcPositivePlaneAngleMeasure = _exports.IfcPositiveLengthMeasure = _exports.IfcPositiveInteger = _exports.IfcPositioningElement = _exports.IfcPort = _exports.IfcPolyline = _exports.IfcPolygonalFaceSet = _exports.IfcPolygonalBoundedHalfSpace = _exports.IfcPolyLoop = _exports.IfcPointOnSurface = _exports.IfcPointOnCurve = _exports.IfcPoint = _exports.IfcPlateTypeEnum = _exports.IfcPlateType = _exports.IfcPlateStandardCase = _exports.IfcPlate = _exports.IfcPlaneAngleMeasure = _exports.IfcPlane = _exports.IfcPlanarForceMeasure = _exports.IfcPlanarExtent = _exports.IfcPlanarBox = _exports.IfcPlacement = _exports.IfcPixelTexture = _exports.IfcPipeSegmentTypeEnum = _exports.IfcPipeSegmentType = _exports.IfcPipeSegment = _exports.IfcPipeFittingTypeEnum = _exports.IfcPipeFittingType = _exports.IfcPipeFitting = _exports.IfcPileTypeEnum = _exports.IfcPileType = _exports.IfcPileConstructionEnum = _exports.IfcPile = _exports.IfcPhysicalSimpleQuantity = _exports.IfcPhysicalQuantity = _exports.IfcPhysicalOrVirtualEnum = _exports.IfcPhysicalComplexQuantity = _exports.IfcPersonAndOrganization = _exports.IfcPerson = _exports.IfcPermitTypeEnum = _exports.IfcPermit = _exports.IfcPermeableCoveringProperties = _exports.IfcPermeableCoveringOperationEnum = _exports.IfcPerformanceHistoryTypeEnum = _exports.IfcPerformanceHistory = _exports.IfcPcurve = _exports.IfcPath = _exports.IfcParameterizedProfileDef = _exports.IfcParameterValue = _exports.IfcPHMeasure = _exports.IfcOwnerHistory = _exports.IfcOutletTypeEnum = _exports.IfcOutletType = _exports.IfcOutlet = _exports.IfcOuterBoundaryCurve = _exports.IfcOrientedEdge = _exports.IfcOrientationExpression = _exports.IfcOrganizationRelationship = _exports.IfcOrganization = _exports.IfcOpeningStandardCase = _exports.IfcOpeningElementTypeEnum = _exports.IfcOpeningElement = _exports.IfcOpenShell = _exports.IfcOffsetCurveByDistances = _exports.IfcOffsetCurve3D = _exports.IfcOffsetCurve2D = _exports.IfcOffsetCurve = _exports.IfcOccupantTypeEnum = _exports.IfcOccupant = _exports.IfcObjectiveEnum = _exports.IfcObjective = _exports.IfcObjectTypeEnum = _exports.IfcObjectPlacement = _exports.IfcObjectDefinition = _exports.IfcObject = _exports.IfcNumericMeasure = _exports.IfcNullStyle = _exports.IfcNormalisedRatioMeasure = _exports.IfcNonNegativeLengthMeasure = _exports.IfcNamedUnit = _exports.IfcMotorConnectionTypeEnum = _exports.IfcMotorConnectionType = _exports.IfcMotorConnection = _exports.IfcMonthInYearNumber = _exports.IfcMonetaryUnit = _exports.IfcMonetaryMeasure = _exports.IfcMomentOfInertiaMeasure = _exports.IfcMolecularWeightMeasure = _exports.IfcMoistureDiffusivityMeasure = _exports.IfcModulusOfSubgradeReactionMeasure = _exports.IfcModulusOfRotationalSubgradeReactionMeasure = _exports.IfcModulusOfLinearSubgradeReactionMeasure = _exports.IfcModulusOfElasticityMeasure = _exports.IfcMirroredProfileDef = _exports.IfcMetric = _exports.IfcMemberTypeEnum = _exports.IfcMemberType = _exports.IfcMemberStandardCase = _exports.IfcMember = _exports.IfcMedicalDeviceTypeEnum = _exports.IfcMedicalDeviceType = _exports.IfcMedicalDevice = _exports.IfcMechanicalFastenerTypeEnum = _exports.IfcMechanicalFastenerType = _exports.IfcMechanicalFastener = _exports.IfcMeasureWithUnit = _exports.IfcMaterialUsageDefinition = _exports.IfcMaterialRelationship = _exports.IfcMaterialProperties = _exports.IfcMaterialProfileWithOffsets = _exports.IfcMaterialProfileSetUsageTapering = _exports.IfcMaterialProfileSetUsage = _exports.IfcMaterialProfileSet = _exports.IfcMaterialProfile = _exports.IfcMaterialList = _exports.IfcMaterialLayerWithOffsets = _exports.IfcMaterialLayerSetUsage = _exports.IfcMaterialLayerSet = _exports.IfcMaterialLayer = _exports.IfcMaterialDefinitionRepresentation = _exports.IfcMaterialDefinition = _exports.IfcMaterialConstituentSet = _exports.IfcMaterialConstituent = _exports.IfcMaterialClassificationRelationship = _exports.IfcMaterial = _exports.IfcMassPerLengthMeasure = _exports.IfcMassMeasure = _exports.IfcMassFlowRateMeasure = _exports.IfcMassDensityMeasure = _exports.IfcMappedItem = _exports.IfcMapConversion = _exports.IfcManifoldSolidBrep = _exports.IfcMagneticFluxMeasure = _exports.IfcMagneticFluxDensityMeasure = _exports.IfcLuminousIntensityMeasure = _exports.IfcLuminousIntensityDistributionMeasure = _exports.IfcLuminousFluxMeasure = _exports.IfcLoop = _exports.IfcLogicalOperatorEnum = _exports.IfcLogical = _exports.IfcLocalPlacement = _exports.IfcLoadGroupTypeEnum = _exports.IfcLinearVelocityMeasure = _exports.IfcLinearStiffnessMeasure = _exports.IfcLinearPositioningElement = _exports.IfcLinearPlacement = _exports.IfcLinearMomentMeasure = _exports.IfcLinearForceMeasure = _exports.IfcLineSegment2D = _exports.IfcLine = _exports.IfcLightSourceSpot = _exports.IfcLightSourcePositional = _exports.IfcLightSourceGoniometric = _exports.IfcLightSourceDirectional = _exports.IfcLightSourceAmbient = _exports.IfcLightSource = _exports.IfcLightIntensityDistribution = _exports.IfcLightFixtureTypeEnum = _exports.IfcLightFixtureType = _exports.IfcLightFixture = _exports.IfcLightEmissionSourceEnum = _exports.IfcLightDistributionData = _exports.IfcLightDistributionCurveEnum = _exports.IfcLibraryReference = _exports.IfcLibraryInformation = _exports.IfcLengthMeasure = _exports.IfcLayerSetDirectionEnum = _exports.IfcLanguageId = _exports.IfcLampTypeEnum = _exports.IfcLampType = _exports.IfcLamp = _exports.IfcLagTime = _exports.IfcLaborResourceTypeEnum = _exports.IfcLaborResourceType = _exports.IfcLaborResource = _exports.IfcLabel = _exports.IfcLShapeProfileDef = _exports.IfcKnotType = _exports.IfcKinematicViscosityMeasure = _exports.IfcJunctionBoxTypeEnum = _exports.IfcJunctionBoxType = _exports.IfcJunctionBox = _exports.IfcIsothermalMoistureCapacityMeasure = _exports.IfcIrregularTimeSeriesValue = _exports.IfcIrregularTimeSeries = _exports.IfcIonConcentrationMeasure = _exports.IfcInventoryTypeEnum = _exports.IfcInventory = _exports.IfcIntersectionCurve = _exports.IfcInternalOrExternalEnum = _exports.IfcInterceptorTypeEnum = _exports.IfcInterceptorType = _exports.IfcInterceptor = _exports.IfcIntegerCountRateMeasure = _exports.IfcInteger = _exports.IfcInductanceMeasure = _exports.IfcIndexedTriangleTextureMap = _exports.IfcIndexedTextureMap = _exports.IfcIndexedPolygonalFaceWithVoids = _exports.IfcIndexedPolygonalFace = _exports.IfcIndexedPolyCurve = _exports.IfcIndexedColourMap = _exports.IfcImageTexture = _exports.IfcIlluminanceMeasure = _exports.IfcIdentifier = _exports.IfcIShapeProfileDef = _exports.IfcHumidifierTypeEnum = _exports.IfcHumidifierType = _exports.IfcHumidifier = _exports.IfcHeatingValueMeasure = _exports.IfcHeatFluxDensityMeasure = _exports.IfcHeatExchangerTypeEnum = _exports.IfcHeatExchangerType = _exports.IfcHeatExchanger = _exports.IfcHalfSpaceSolid = _exports.IfcGroup = _exports.IfcGridTypeEnum = _exports.IfcGridPlacement = _exports.IfcGridAxis = _exports.IfcGrid = _exports.IfcGloballyUniqueId = _exports.IfcGlobalOrLocalEnum = _exports.IfcGeometricSet = _exports.IfcGeometricRepresentationSubContext = _exports.IfcGeometricRepresentationItem = _exports.IfcGeometricRepresentationContext = _exports.IfcGeometricProjectionEnum = _exports.IfcGeometricCurveSet = _exports.IfcGeographicElementTypeEnum = _exports.IfcGeographicElementType = _exports.IfcGeographicElement = _exports.IfcFurnitureTypeEnum = _exports.IfcFurnitureType = _exports.IfcFurniture = _exports.IfcFurnishingElementType = _exports.IfcFurnishingElement = _exports.IfcFrequencyMeasure = _exports.IfcForceMeasure = _exports.IfcFootingTypeEnum = _exports.IfcFootingType = _exports.IfcFooting = _exports.IfcFontWeight = _exports.IfcFontVariant = _exports.IfcFontStyle = _exports.IfcFlowTreatmentDeviceType = _exports.IfcFlowTreatmentDevice = _exports.IfcFlowTerminalType = _exports.IfcFlowTerminal = _exports.IfcFlowStorageDeviceType = _exports.IfcFlowStorageDevice = _exports.IfcFlowSegmentType = _exports.IfcFlowSegment = _exports.IfcFlowMovingDeviceType = _exports.IfcFlowMovingDevice = _exports.IfcFlowMeterTypeEnum = _exports.IfcFlowMeterType = _exports.IfcFlowMeter = _exports.IfcFlowInstrumentTypeEnum = _exports.IfcFlowInstrumentType = _exports.IfcFlowInstrument = _exports.IfcFlowFittingType = _exports.IfcFlowFitting = _exports.IfcFlowDirectionEnum = _exports.IfcFlowControllerType = _exports.IfcFlowController = _exports.IfcFixedReferenceSweptAreaSolid = _exports.IfcFireSuppressionTerminalTypeEnum = _exports.IfcFireSuppressionTerminalType = _exports.IfcFireSuppressionTerminal = _exports.IfcFilterTypeEnum = _exports.IfcFilterType = _exports.IfcFilter = _exports.IfcFillAreaStyleTiles = _exports.IfcFillAreaStyleHatching = _exports.IfcFillAreaStyle = _exports.IfcFeatureElementSubtraction = _exports.IfcFeatureElementAddition = _exports.IfcFeatureElement = _exports.IfcFastenerTypeEnum = _exports.IfcFastenerType = _exports.IfcFastener = _exports.IfcFanTypeEnum = _exports.IfcFanType = _exports.IfcFan = _exports.IfcFailureConnectionCondition = _exports.IfcFacilityPart = _exports.IfcFacility = _exports.IfcFacetedBrepWithVoids = _exports.IfcFacetedBrep = _exports.IfcFaceSurface = _exports.IfcFaceOuterBound = _exports.IfcFaceBound = _exports.IfcFaceBasedSurfaceModel = _exports.IfcFace = _exports.IfcExtrudedAreaSolidTapered = _exports.IfcExtrudedAreaSolid = _exports.IfcExternallyDefinedTextFont = _exports.IfcExternallyDefinedSurfaceStyle = _exports.IfcExternallyDefinedHatchStyle = _exports.IfcExternalSpatialStructureElement = _exports.IfcExternalSpatialElementTypeEnum = _exports.IfcExternalSpatialElement = _exports.IfcExternalReferenceRelationship = _exports.IfcExternalReference = _exports.IfcExternalInformation = _exports.IfcExtendedProperties = _exports.IfcEventTypeEnum = _exports.IfcEventType = _exports.IfcEventTriggerTypeEnum = _exports.IfcEventTime = _exports.IfcEvent = _exports.IfcEvaporatorTypeEnum = _exports.IfcEvaporatorType = _exports.IfcEvaporator = _exports.IfcEvaporativeCoolerTypeEnum = _exports.IfcEvaporativeCoolerType = _exports.IfcEvaporativeCooler = _exports.IfcEngineTypeEnum = _exports.IfcEngineType = _exports.IfcEngine = _exports.IfcEnergyMeasure = _exports.IfcEnergyConversionDeviceType = _exports.IfcEnergyConversionDevice = _exports.IfcEllipseProfileDef = _exports.IfcEllipse = _exports.IfcElements = _exports.IfcElementarySurface = _exports.IfcElementType = _exports.IfcElementQuantity = _exports.IfcElementCompositionEnum = _exports.IfcElementComponentType = _exports.IfcElementComponent = _exports.IfcElementAssemblyTypeEnum = _exports.IfcElementAssemblyType = _exports.IfcElementAssembly = _exports.IfcElement = _exports.IfcElectricVoltageMeasure = _exports.IfcElectricTimeControlTypeEnum = _exports.IfcElectricTimeControlType = _exports.IfcElectricTimeControl = _exports.IfcElectricResistanceMeasure = _exports.IfcElectricMotorTypeEnum = _exports.IfcElectricMotorType = _exports.IfcElectricMotor = _exports.IfcElectricGeneratorTypeEnum = _exports.IfcElectricGeneratorType = _exports.IfcElectricGenerator = _exports.IfcElectricFlowStorageDeviceTypeEnum = _exports.IfcElectricFlowStorageDeviceType = _exports.IfcElectricFlowStorageDevice = _exports.IfcElectricDistributionBoardTypeEnum = _exports.IfcElectricDistributionBoardType = _exports.IfcElectricDistributionBoard = _exports.IfcElectricCurrentMeasure = _exports.IfcElectricConductanceMeasure = _exports.IfcElectricChargeMeasure = _exports.IfcElectricCapacitanceMeasure = _exports.IfcElectricApplianceTypeEnum = _exports.IfcElectricApplianceType = _exports.IfcElectricAppliance = _exports.IfcEdgeLoop = _exports.IfcEdgeCurve = _exports.IfcEdge = _exports.IfcDynamicViscosityMeasure = _exports.IfcDuration = _exports.IfcDuctSilencerTypeEnum = _exports.IfcDuctSilencerType = _exports.IfcDuctSilencer = _exports.IfcDuctSegmentTypeEnum = _exports.IfcDuctSegmentType = _exports.IfcDuctSegment = _exports.IfcDuctFittingTypeEnum = _exports.IfcDuctFittingType = _exports.IfcDuctFitting = _exports.IfcDraughtingPreDefinedCurveFont = _exports.IfcDraughtingPreDefinedColour = _exports.IfcDoseEquivalentMeasure = _exports.IfcDoorTypeOperationEnum = _exports.IfcDoorTypeEnum = _exports.IfcDoorType = _exports.IfcDoorStyleOperationEnum = _exports.IfcDoorStyleConstructionEnum = _exports.IfcDoorStyle = _exports.IfcDoorStandardCase = _exports.IfcDoorPanelProperties = _exports.IfcDoorPanelPositionEnum = _exports.IfcDoorPanelOperationEnum = _exports.IfcDoorLiningProperties = _exports.IfcDoor = _exports.IfcDocumentStatusEnum = _exports.IfcDocumentReference = _exports.IfcDocumentInformationRelationship = _exports.IfcDocumentInformation = _exports.IfcDocumentConfidentialityEnum = _exports.IfcDistributionSystemEnum = _exports.IfcDistributionSystem = _exports.IfcDistributionPortTypeEnum = _exports.IfcDistributionPort = _exports.IfcDistributionFlowElementType = _exports.IfcDistributionFlowElement = _exports.IfcDistributionElementType = _exports.IfcDistributionElement = _exports.IfcDistributionControlElementType = _exports.IfcDistributionControlElement = _exports.IfcDistributionCircuit = _exports.IfcDistributionChamberElementTypeEnum = _exports.IfcDistributionChamberElementType = _exports.IfcDistributionChamberElement = _exports.IfcDistanceExpression = _exports.IfcDiscreteAccessoryTypeEnum = _exports.IfcDiscreteAccessoryType = _exports.IfcDiscreteAccessory = _exports.IfcDirectionSenseEnum = _exports.IfcDirection = _exports.IfcDimensionalExponents = _exports.IfcDimensionCount = _exports.IfcDescriptiveMeasure = _exports.IfcDerivedUnitEnum = _exports.IfcDerivedUnitElement = _exports.IfcDerivedUnit = _exports.IfcDerivedProfileDef = _exports.IfcDeepFoundationType = _exports.IfcDeepFoundation = _exports.IfcDayInWeekNumber = _exports.IfcDayInMonthNumber = _exports.IfcDateTime = _exports.IfcDate = _exports.IfcDataOriginEnum = _exports.IfcDamperTypeEnum = _exports.IfcDamperType = _exports.IfcDamper = _exports.IfcCylindricalSurface = _exports.IfcCurveStyleFontPattern = _exports.IfcCurveStyleFontAndScaling = _exports.IfcCurveStyleFont = _exports.IfcCurveStyle = _exports.IfcCurveSegment2D = _exports.IfcCurveInterpolationEnum = _exports.IfcCurveBoundedSurface = _exports.IfcCurveBoundedPlane = _exports.IfcCurve = _exports.IfcCurvatureMeasure = _exports.IfcCurtainWallTypeEnum = _exports.IfcCurtainWallType = _exports.IfcCurtainWall = _exports.IfcCurrencyRelationship = _exports.IfcCsgSolid = _exports.IfcCsgPrimitive3D = _exports.IfcCrewResourceTypeEnum = _exports.IfcCrewResourceType = _exports.IfcCrewResource = _exports.IfcCoveringTypeEnum = _exports.IfcCoveringType = _exports.IfcCovering = _exports.IfcCountMeasure = _exports.IfcCostValue = _exports.IfcCostScheduleTypeEnum = _exports.IfcCostSchedule = _exports.IfcCostItemTypeEnum = _exports.IfcCostItem = _exports.IfcCoordinateReferenceSystem = _exports.IfcCoordinateOperation = _exports.IfcCoolingTowerTypeEnum = _exports.IfcCoolingTowerType = _exports.IfcCoolingTower = _exports.IfcCooledBeamTypeEnum = _exports.IfcCooledBeamType = _exports.IfcCooledBeam = _exports.IfcConversionBasedUnitWithOffset = _exports.IfcConversionBasedUnit = _exports.IfcControllerTypeEnum = _exports.IfcControllerType = _exports.IfcController = _exports.IfcControl = _exports.IfcContextDependentUnit = _exports.IfcContextDependentMeasure = _exports.IfcContext = _exports.IfcConstructionResourceType = _exports.IfcConstructionResource = _exports.IfcConstructionProductResourceTypeEnum = _exports.IfcConstructionProductResourceType = _exports.IfcConstructionProductResource = _exports.IfcConstructionMaterialResourceTypeEnum = _exports.IfcConstructionMaterialResourceType = _exports.IfcConstructionMaterialResource = _exports.IfcConstructionEquipmentResourceTypeEnum = _exports.IfcConstructionEquipmentResourceType = _exports.IfcConstructionEquipmentResource = _exports.IfcConstraintEnum = _exports.IfcConstraint = _exports.IfcConnectionVolumeGeometry = _exports.IfcConnectionTypeEnum = _exports.IfcConnectionSurfaceGeometry = _exports.IfcConnectionPointGeometry = _exports.IfcConnectionPointEccentricity = _exports.IfcConnectionGeometry = _exports.IfcConnectionCurveGeometry = _exports.IfcConnectedFaceSet = _exports.IfcConic = _exports.IfcCondenserTypeEnum = _exports.IfcCondenserType = _exports.IfcCondenser = _exports.IfcCompressorTypeEnum = _exports.IfcCompressorType = _exports.IfcCompressor = _exports.IfcCompositeProfileDef = _exports.IfcCompositeCurveSegment = _exports.IfcCompositeCurveOnSurface = _exports.IfcCompositeCurve = _exports.IfcComplexPropertyTemplateTypeEnum = _exports.IfcComplexPropertyTemplate = _exports.IfcComplexProperty = _exports.IfcCommunicationsApplianceTypeEnum = _exports.IfcCommunicationsApplianceType = _exports.IfcCommunicationsAppliance = _exports.IfcColumnTypeEnum = _exports.IfcColumnType = _exports.IfcColumnStandardCase = _exports.IfcColumn = _exports.IfcColourSpecification = _exports.IfcColourRgbList = _exports.IfcColourRgb = _exports.IfcCoilTypeEnum = _exports.IfcCoilType = _exports.IfcCoil = _exports.IfcClosedShell = _exports.IfcClassificationReference = _exports.IfcClassification = _exports.IfcCivilElementType = _exports.IfcCivilElement = _exports.IfcCircularArcSegment2D = _exports.IfcCircleProfileDef = _exports.IfcCircleHollowProfileDef = _exports.IfcCircle = _exports.IfcChimneyTypeEnum = _exports.IfcChimneyType = _exports.IfcChimney = _exports.IfcChillerTypeEnum = _exports.IfcChillerType = _exports.IfcChiller = _exports.IfcChangeActionEnum = _exports.IfcCenterLineProfileDef = _exports.IfcCartesianTransformationOperator3DnonUniform = _exports.IfcCartesianTransformationOperator3D = _exports.IfcCartesianTransformationOperator2DnonUniform = _exports.IfcCartesianTransformationOperator2D = _exports.IfcCartesianTransformationOperator = _exports.IfcCartesianPointList3D = _exports.IfcCartesianPointList2D = _exports.IfcCartesianPointList = _exports.IfcCartesianPoint = _exports.IfcCardinalPointReference = _exports.IfcCaissonFoundationTypeEnum = _exports.IfcCaissonFoundationType = _exports.IfcCaissonFoundation = _exports.IfcCableSegmentTypeEnum = _exports.IfcCableSegmentType = _exports.IfcCableSegment = _exports.IfcCableFittingTypeEnum = _exports.IfcCableFittingType = _exports.IfcCableFitting = _exports.IfcCableCarrierSegmentTypeEnum = _exports.IfcCableCarrierSegmentType = _exports.IfcCableCarrierSegment = _exports.IfcCableCarrierFittingTypeEnum = _exports.IfcCableCarrierFittingType = _exports.IfcCableCarrierFitting = _exports.IfcCShapeProfileDef = _exports.IfcBurnerTypeEnum = _exports.IfcBurnerType = _exports.IfcBurner = _exports.IfcBuildingSystemTypeEnum = _exports.IfcBuildingSystem = _exports.IfcBuildingStorey = _exports.IfcBuildingElementType = _exports.IfcBuildingElementProxyTypeEnum = _exports.IfcBuildingElementProxyType = _exports.IfcBuildingElementProxy = _exports.IfcBuildingElementPartTypeEnum = _exports.IfcBuildingElementPartType = _exports.IfcBuildingElementPart = _exports.IfcBuildingElement = _exports.IfcBuilding = _exports.IfcBridgeTypeEnum = _exports.IfcBridgePartTypeEnum = _exports.IfcBridgePart = _exports.IfcBridge = _exports.IfcBoxedHalfSpace = _exports.IfcBoxAlignment = _exports.IfcBoundingBox = _exports.IfcBoundedSurface = _exports.IfcBoundedCurve = _exports.IfcBoundaryNodeConditionWarping = _exports.IfcBoundaryNodeCondition = _exports.IfcBoundaryFaceCondition = _exports.IfcBoundaryEdgeCondition = _exports.IfcBoundaryCurve = _exports.IfcBoundaryCondition = _exports.IfcBooleanResult = _exports.IfcBooleanOperator = _exports.IfcBooleanClippingResult = _exports.IfcBoolean = _exports.IfcBoilerTypeEnum = _exports.IfcBoilerType = _exports.IfcBoiler = _exports.IfcBlock = _exports.IfcBlobTexture = _exports.IfcBinary = _exports.IfcBenchmarkEnum = _exports.IfcBearingTypeEnum = _exports.IfcBearingTypeDisplacementEnum = _exports.IfcBearingType = _exports.IfcBearing = _exports.IfcBeamTypeEnum = _exports.IfcBeamType = _exports.IfcBeamStandardCase = _exports.IfcBeam = _exports.IfcBSplineSurfaceWithKnots = _exports.IfcBSplineSurfaceForm = _exports.IfcBSplineSurface = _exports.IfcBSplineCurveWithKnots = _exports.IfcBSplineCurveForm = _exports.IfcBSplineCurve = _exports.IfcAxis2Placement3D = _exports.IfcAxis2Placement2D = _exports.IfcAxis1Placement = _exports.IfcAudioVisualApplianceTypeEnum = _exports.IfcAudioVisualApplianceType = _exports.IfcAudioVisualAppliance = _exports.IfcAsymmetricIShapeProfileDef = _exports.IfcAsset = _exports.IfcAssemblyPlaceEnum = _exports.IfcArithmeticOperatorEnum = _exports.IfcAreaMeasure = _exports.IfcAreaDensityMeasure = _exports.IfcArbitraryProfileDefWithVoids = _exports.IfcArbitraryOpenProfileDef = _exports.IfcArbitraryClosedProfileDef = _exports.IfcApprovalRelationship = _exports.IfcApproval = _exports.IfcAppliedValue = _exports.IfcApplication = _exports.IfcAnnotationFillArea = _exports.IfcAnnotation = _exports.IfcAngularVelocityMeasure = _exports.IfcAnalysisTheoryTypeEnum = _exports.IfcAnalysisModelTypeEnum = _exports.IfcAmountOfSubstanceMeasure = _exports.IfcAlignmentTypeEnum = _exports.IfcAlignmentCurve = _exports.IfcAlignment2DVerticalSegment = _exports.IfcAlignment2DVertical = _exports.IfcAlignment2DVerSegParabolicArc = _exports.IfcAlignment2DVerSegLine = _exports.IfcAlignment2DVerSegCircularArc = _exports.IfcAlignment2DSegment = _exports.IfcAlignment2DHorizontalSegment = _exports.IfcAlignment2DHorizontal = _exports.IfcAlignment = _exports.IfcAlarmTypeEnum = _exports.IfcAlarmType = _exports.IfcAlarm = _exports.IfcAirToAirHeatRecoveryTypeEnum = _exports.IfcAirToAirHeatRecoveryType = _exports.IfcAirToAirHeatRecovery = _exports.IfcAirTerminalTypeEnum = _exports.IfcAirTerminalType = _exports.IfcAirTerminalBoxTypeEnum = _exports.IfcAirTerminalBoxType = _exports.IfcAirTerminalBox = _exports.IfcAirTerminal = _exports.IfcAdvancedFace = _exports.IfcAdvancedBrepWithVoids = _exports.IfcAdvancedBrep = _exports.IfcAddressTypeEnum = _exports.IfcAddress = _exports.IfcActuatorTypeEnum = _exports.IfcActuatorType = _exports.IfcActuator = _exports.IfcActorRole = _exports.IfcActor = _exports.IfcActionTypeEnum = _exports.IfcActionSourceTypeEnum = _exports.IfcActionRequestTypeEnum = _exports.IfcActionRequest = _exports.IfcAccelerationMeasure = _exports.IfcAbsorbedDoseMeasure = _exports.IfcAPI = _exports.IFCZSHAPEPROFILEDEF = _exports.IFCZONE = _exports.IFCWORKTIME = _exports.IFCWORKSCHEDULE = _exports.IFCWORKPLAN = _exports.IFCWORKCONTROL = _exports.IFCWORKCALENDAR = _exports.IFCWINDOWTYPE = _exports.IFCWINDOWSTYLE = _exports.IFCWINDOWSTANDARDCASE = _exports.IFCWINDOWPANELPROPERTIES = _exports.IFCWINDOWLININGPROPERTIES = _exports.IFCWINDOW = _exports.IFCWASTETERMINALTYPE = _exports.IFCWASTETERMINAL = _exports.IFCWALLTYPE = _exports.IFCWALLSTANDARDCASE = _exports.IFCWALLELEMENTEDCASE = _exports.IFCWALL = _exports.IFCVOIDINGFEATURE = _exports.IFCVIRTUALGRIDINTERSECTION = _exports.IFCVIRTUALELEMENT = _exports.IFCVIBRATIONISOLATORTYPE = _exports.IFCVIBRATIONISOLATOR = _exports.IFCVIBRATIONDAMPERTYPE = _exports.IFCVIBRATIONDAMPER = _exports.IFCVERTEXPOINT = _exports.IFCVERTEXLOOP = _exports.IFCVERTEX = _exports.IFCVECTOR = _exports.IFCVALVETYPE = _exports.IFCVALVE = _exports.IFCUSHAPEPROFILEDEF = _exports.IFCUNITASSIGNMENT = _exports.IFCUNITARYEQUIPMENTTYPE = _exports.IFCUNITARYEQUIPMENT = _exports.IFCUNITARYCONTROLELEMENTTYPE = _exports.IFCUNITARYCONTROLELEMENT = _exports.IFCTYPERESOURCE = _exports.IFCTYPEPRODUCT = _exports.IFCTYPEPROCESS = _exports.IFCTYPEOBJECT = _exports.IFCTUBEBUNDLETYPE = _exports.IFCTUBEBUNDLE = _exports.IFCTSHAPEPROFILEDEF = _exports.IFCTRIMMEDCURVE = _exports.IFCTRIANGULATEDIRREGULARNETWORK = _exports.IFCTRIANGULATEDFACESET = _exports.IFCTRAPEZIUMPROFILEDEF = _exports.IFCTRANSPORTELEMENTTYPE = _exports.IFCTRANSPORTELEMENT = _exports.IFCTRANSITIONCURVESEGMENT2D = _exports.IFCTRANSFORMERTYPE = _exports.IFCTRANSFORMER = _exports.IFCTOROIDALSURFACE = _exports.IFCTOPOLOGYREPRESENTATION = _exports.IFCTOPOLOGICALREPRESENTATIONITEM = _exports.IFCTIMESERIESVALUE = _exports.IFCTIMESERIES = _exports.IFCTIMEPERIOD = _exports.IFCTEXTUREVERTEXLIST = _exports.IFCTEXTUREVERTEX = _exports.IFCTEXTUREMAP = _exports.IFCTEXTURECOORDINATEGENERATOR = _exports.IFCTEXTURECOORDINATE = _exports.IFCTEXTSTYLETEXTMODEL = _exports.IFCTEXTSTYLEFORDEFINEDFONT = _exports.IFCTEXTSTYLEFONTMODEL = _exports.IFCTEXTSTYLE = _exports.IFCTEXTLITERALWITHEXTENT = _exports.IFCTEXTLITERAL = _exports.IFCTESSELLATEDITEM = _exports.IFCTESSELLATEDFACESET = _exports.IFCTENDONTYPE = _exports.IFCTENDONCONDUITTYPE = _exports.IFCTENDONCONDUIT = _exports.IFCTENDONANCHORTYPE = _exports.IFCTENDONANCHOR = _exports.IFCTENDON = _exports.IFCTELECOMADDRESS = _exports.IFCTASKTYPE = _exports.IFCTASKTIMERECURRING = _exports.IFCTASKTIME = _exports.IFCTASK = _exports.IFCTANKTYPE = _exports.IFCTANK = _exports.IFCTABLEROW = _exports.IFCTABLECOLUMN = _exports.IFCTABLE = _exports.IFCSYSTEMFURNITUREELEMENTTYPE = _exports.IFCSYSTEMFURNITUREELEMENT = _exports.IFCSYSTEM = _exports.IFCSWITCHINGDEVICETYPE = _exports.IFCSWITCHINGDEVICE = _exports.IFCSWEPTSURFACE = _exports.IFCSWEPTDISKSOLIDPOLYGONAL = _exports.IFCSWEPTDISKSOLID = _exports.IFCSWEPTAREASOLID = _exports.IFCSURFACETEXTURE = _exports.IFCSURFACESTYLEWITHTEXTURES = _exports.IFCSURFACESTYLESHADING = _exports.IFCSURFACESTYLERENDERING = _exports.IFCSURFACESTYLEREFRACTION = _exports.IFCSURFACESTYLELIGHTING = _exports.IFCSURFACESTYLE = _exports.IFCSURFACEREINFORCEMENTAREA = _exports.IFCSURFACEOFREVOLUTION = _exports.IFCSURFACEOFLINEAREXTRUSION = _exports.IFCSURFACEFEATURE = _exports.IFCSURFACECURVESWEPTAREASOLID = _exports.IFCSURFACECURVE = _exports.IFCSURFACE = _exports.IFCSUBEDGE = _exports.IFCSUBCONTRACTRESOURCETYPE = _exports.IFCSUBCONTRACTRESOURCE = _exports.IFCSTYLEMODEL = _exports.IFCSTYLEDREPRESENTATION = _exports.IFCSTYLEDITEM = _exports.IFCSTRUCTURALSURFACEREACTION = _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = _exports.IFCSTRUCTURALSURFACEMEMBER = _exports.IFCSTRUCTURALSURFACECONNECTION = _exports.IFCSTRUCTURALSURFACEACTION = _exports.IFCSTRUCTURALRESULTGROUP = _exports.IFCSTRUCTURALREACTION = _exports.IFCSTRUCTURALPOINTREACTION = _exports.IFCSTRUCTURALPOINTCONNECTION = _exports.IFCSTRUCTURALPOINTACTION = _exports.IFCSTRUCTURALPLANARACTION = _exports.IFCSTRUCTURALMEMBER = _exports.IFCSTRUCTURALLOADTEMPERATURE = _exports.IFCSTRUCTURALLOADSTATIC = _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = _exports.IFCSTRUCTURALLOADSINGLEFORCE = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = _exports.IFCSTRUCTURALLOADPLANARFORCE = _exports.IFCSTRUCTURALLOADORRESULT = _exports.IFCSTRUCTURALLOADLINEARFORCE = _exports.IFCSTRUCTURALLOADGROUP = _exports.IFCSTRUCTURALLOADCONFIGURATION = _exports.IFCSTRUCTURALLOADCASE = _exports.IFCSTRUCTURALLOAD = _exports.IFCSTRUCTURALLINEARACTION = _exports.IFCSTRUCTURALITEM = _exports.IFCSTRUCTURALCURVEREACTION = _exports.IFCSTRUCTURALCURVEMEMBERVARYING = _exports.IFCSTRUCTURALCURVEMEMBER = _exports.IFCSTRUCTURALCURVECONNECTION = _exports.IFCSTRUCTURALCURVEACTION = _exports.IFCSTRUCTURALCONNECTIONCONDITION = _exports.IFCSTRUCTURALCONNECTION = _exports.IFCSTRUCTURALANALYSISMODEL = _exports.IFCSTRUCTURALACTIVITY = _exports.IFCSTRUCTURALACTION = _exports.IFCSTAIRTYPE = _exports.IFCSTAIRFLIGHTTYPE = _exports.IFCSTAIRFLIGHT = _exports.IFCSTAIR = _exports.IFCSTACKTERMINALTYPE = _exports.IFCSTACKTERMINAL = _exports.IFCSPHERICALSURFACE = _exports.IFCSPHERE = _exports.IFCSPATIALZONETYPE = _exports.IFCSPATIALZONE = _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = _exports.IFCSPATIALSTRUCTUREELEMENT = _exports.IFCSPATIALELEMENTTYPE = _exports.IFCSPATIALELEMENT = _exports.IFCSPACETYPE = _exports.IFCSPACEHEATERTYPE = _exports.IFCSPACEHEATER = _exports.IFCSPACE = _exports.IFCSOLIDMODEL = _exports.IFCSOLARDEVICETYPE = _exports.IFCSOLARDEVICE = _exports.IFCSLIPPAGECONNECTIONCONDITION = _exports.IFCSLABTYPE = _exports.IFCSLABSTANDARDCASE = _exports.IFCSLABELEMENTEDCASE = _exports.IFCSLAB = _exports.IFCSIUNIT = _exports.IFCSITE = _exports.IFCSIMPLEPROPERTYTEMPLATE = _exports.IFCSIMPLEPROPERTY = _exports.IFCSHELLBASEDSURFACEMODEL = _exports.IFCSHAPEREPRESENTATION = _exports.IFCSHAPEMODEL = _exports.IFCSHAPEASPECT = _exports.IFCSHADINGDEVICETYPE = _exports.IFCSHADINGDEVICE = _exports.IFCSENSORTYPE = _exports.IFCSENSOR = _exports.IFCSECTIONREINFORCEMENTPROPERTIES = _exports.IFCSECTIONPROPERTIES = _exports.IFCSECTIONEDSPINE = _exports.IFCSECTIONEDSOLIDHORIZONTAL = _exports.IFCSECTIONEDSOLID = _exports.IFCSEAMCURVE = _exports.IFCSCHEDULINGTIME = _exports.IFCSANITARYTERMINALTYPE = _exports.IFCSANITARYTERMINAL = _exports.IFCROUNDEDRECTANGLEPROFILEDEF = _exports.IFCROOT = _exports.IFCROOFTYPE = _exports.IFCROOF = _exports.IFCRIGHTCIRCULARCYLINDER = _exports.IFCRIGHTCIRCULARCONE = _exports.IFCREVOLVEDAREASOLIDTAPERED = _exports.IFCREVOLVEDAREASOLID = _exports.IFCRESOURCETIME = _exports.IFCRESOURCELEVELRELATIONSHIP = _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = _exports.IFCRESOURCEAPPROVALRELATIONSHIP = _exports.IFCRESOURCE = _exports.IFCREPRESENTATIONMAP = _exports.IFCREPRESENTATIONITEM = _exports.IFCREPRESENTATIONCONTEXT = _exports.IFCREPRESENTATION = _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = _exports.IFCRELVOIDSELEMENT = _exports.IFCRELSPACEBOUNDARY2NDLEVEL = _exports.IFCRELSPACEBOUNDARY1STLEVEL = _exports.IFCRELSPACEBOUNDARY = _exports.IFCRELSERVICESBUILDINGS = _exports.IFCRELSEQUENCE = _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = _exports.IFCRELPROJECTSELEMENT = _exports.IFCRELPOSITIONS = _exports.IFCRELNESTS = _exports.IFCRELINTERFERESELEMENTS = _exports.IFCRELFLOWCONTROLELEMENTS = _exports.IFCRELFILLSELEMENT = _exports.IFCRELDEFINESBYTYPE = _exports.IFCRELDEFINESBYTEMPLATE = _exports.IFCRELDEFINESBYPROPERTIES = _exports.IFCRELDEFINESBYOBJECT = _exports.IFCRELDEFINES = _exports.IFCRELDECOMPOSES = _exports.IFCRELDECLARES = _exports.IFCRELCOVERSSPACES = _exports.IFCRELCOVERSBLDGELEMENTS = _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = _exports.IFCRELCONNECTSWITHECCENTRICITY = _exports.IFCRELCONNECTSSTRUCTURALMEMBER = _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = _exports.IFCRELCONNECTSPORTTOELEMENT = _exports.IFCRELCONNECTSPORTS = _exports.IFCRELCONNECTSPATHELEMENTS = _exports.IFCRELCONNECTSELEMENTS = _exports.IFCRELCONNECTS = _exports.IFCRELATIONSHIP = _exports.IFCRELASSOCIATESMATERIAL = _exports.IFCRELASSOCIATESLIBRARY = _exports.IFCRELASSOCIATESDOCUMENT = _exports.IFCRELASSOCIATESCONSTRAINT = _exports.IFCRELASSOCIATESCLASSIFICATION = _exports.IFCRELASSOCIATESAPPROVAL = _exports.IFCRELASSOCIATES = _exports.IFCRELASSIGNSTORESOURCE = _exports.IFCRELASSIGNSTOPRODUCT = _exports.IFCRELASSIGNSTOPROCESS = _exports.IFCRELASSIGNSTOGROUPBYFACTOR = _exports.IFCRELASSIGNSTOGROUP = _exports.IFCRELASSIGNSTOCONTROL = _exports.IFCRELASSIGNSTOACTOR = _exports.IFCRELASSIGNS = _exports.IFCRELAGGREGATES = _exports.IFCREINFORCINGMESHTYPE = _exports.IFCREINFORCINGMESH = _exports.IFCREINFORCINGELEMENTTYPE = _exports.IFCREINFORCINGELEMENT = _exports.IFCREINFORCINGBARTYPE = _exports.IFCREINFORCINGBAR = _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = _exports.IFCREINFORCEMENTBARPROPERTIES = _exports.IFCREGULARTIMESERIES = _exports.IFCREFERENT = _exports.IFCREFERENCE = _exports.IFCRECURRENCEPATTERN = _exports.IFCRECTANGULARTRIMMEDSURFACE = _exports.IFCRECTANGULARPYRAMID = _exports.IFCRECTANGLEPROFILEDEF = _exports.IFCRECTANGLEHOLLOWPROFILEDEF = _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = _exports.IFCRAMPTYPE = _exports.IFCRAMPFLIGHTTYPE = _exports.IFCRAMPFLIGHT = _exports.IFCRAMP = _exports.IFCRAILINGTYPE = _exports.IFCRAILING = _exports.IFCQUANTITYWEIGHT = _exports.IFCQUANTITYVOLUME = _exports.IFCQUANTITYTIME = _exports.IFCQUANTITYSET = _exports.IFCQUANTITYLENGTH = _exports.IFCQUANTITYCOUNT = _exports.IFCQUANTITYAREA = _exports.IFCPUMPTYPE = _exports.IFCPUMP = _exports.IFCPROXY = _exports.IFCPROTECTIVEDEVICETYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = _exports.IFCPROTECTIVEDEVICE = _exports.IFCPROPERTYTEMPLATEDEFINITION = _exports.IFCPROPERTYTEMPLATE = _exports.IFCPROPERTYTABLEVALUE = _exports.IFCPROPERTYSINGLEVALUE = _exports.IFCPROPERTYSETTEMPLATE = _exports.IFCPROPERTYSETDEFINITION = _exports.IFCPROPERTYSET = _exports.IFCPROPERTYREFERENCEVALUE = _exports.IFCPROPERTYLISTVALUE = _exports.IFCPROPERTYENUMERATION = _exports.IFCPROPERTYENUMERATEDVALUE = _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = _exports.IFCPROPERTYDEFINITION = _exports.IFCPROPERTYBOUNDEDVALUE = _exports.IFCPROPERTYABSTRACTION = _exports.IFCPROPERTY = _exports.IFCPROJECTORDER = _exports.IFCPROJECTLIBRARY = _exports.IFCPROJECTIONELEMENT = _exports.IFCPROJECTEDCRS = _exports.IFCPROJECT = _exports.IFCPROFILEPROPERTIES = _exports.IFCPROFILEDEF = _exports.IFCPRODUCTREPRESENTATION = _exports.IFCPRODUCTDEFINITIONSHAPE = _exports.IFCPRODUCT = _exports.IFCPROCESS = _exports.IFCPROCEDURETYPE = _exports.IFCPROCEDURE = _exports.IFCPRESENTATIONSTYLEASSIGNMENT = _exports.IFCPRESENTATIONSTYLE = _exports.IFCPRESENTATIONLAYERWITHSTYLE = _exports.IFCPRESENTATIONLAYERASSIGNMENT = _exports.IFCPRESENTATIONITEM = _exports.IFCPREDEFINEDTEXTFONT = _exports.IFCPREDEFINEDPROPERTYSET = _exports.IFCPREDEFINEDPROPERTIES = _exports.IFCPREDEFINEDITEM = _exports.IFCPREDEFINEDCURVEFONT = _exports.IFCPREDEFINEDCOLOUR = _exports.IFCPOSTALADDRESS = _exports.IFCPOSITIONINGELEMENT = _exports.IFCPORT = _exports.IFCPOLYLOOP = _exports.IFCPOLYLINE = _exports.IFCPOLYGONALFACESET = _exports.IFCPOLYGONALBOUNDEDHALFSPACE = _exports.IFCPOINTONSURFACE = _exports.IFCPOINTONCURVE = _exports.IFCPOINT = _exports.IFCPLATETYPE = _exports.IFCPLATESTANDARDCASE = _exports.IFCPLATE = _exports.IFCPLANE = _exports.IFCPLANAREXTENT = _exports.IFCPLANARBOX = _exports.IFCPLACEMENT = _exports.IFCPIXELTEXTURE = _exports.IFCPIPESEGMENTTYPE = _exports.IFCPIPESEGMENT = _exports.IFCPIPEFITTINGTYPE = _exports.IFCPIPEFITTING = _exports.IFCPILETYPE = _exports.IFCPILE = _exports.IFCPHYSICALSIMPLEQUANTITY = _exports.IFCPHYSICALQUANTITY = _exports.IFCPHYSICALCOMPLEXQUANTITY = _exports.IFCPERSONANDORGANIZATION = _exports.IFCPERSON = _exports.IFCPERMIT = _exports.IFCPERMEABLECOVERINGPROPERTIES = _exports.IFCPERFORMANCEHISTORY = _exports.IFCPCURVE = _exports.IFCPATH = _exports.IFCPARAMETERIZEDPROFILEDEF = _exports.IFCOWNERHISTORY = _exports.IFCOUTLETTYPE = _exports.IFCOUTLET = _exports.IFCOUTERBOUNDARYCURVE = _exports.IFCORIENTEDEDGE = _exports.IFCORIENTATIONEXPRESSION = _exports.IFCORGANIZATIONRELATIONSHIP = _exports.IFCORGANIZATION = _exports.IFCOPENSHELL = _exports.IFCOPENINGSTANDARDCASE = _exports.IFCOPENINGELEMENT = _exports.IFCOFFSETCURVEBYDISTANCES = _exports.IFCOFFSETCURVE3D = _exports.IFCOFFSETCURVE2D = _exports.IFCOFFSETCURVE = _exports.IFCOCCUPANT = _exports.IFCOBJECTPLACEMENT = _exports.IFCOBJECTIVE = _exports.IFCOBJECTDEFINITION = _exports.IFCOBJECT = _exports.IFCNAMEDUNIT = _exports.IFCMOTORCONNECTIONTYPE = _exports.IFCMOTORCONNECTION = _exports.IFCMONETARYUNIT = _exports.IFCMIRROREDPROFILEDEF = _exports.IFCMETRIC = _exports.IFCMEMBERTYPE = _exports.IFCMEMBERSTANDARDCASE = _exports.IFCMEMBER = _exports.IFCMEDICALDEVICETYPE = _exports.IFCMEDICALDEVICE = _exports.IFCMECHANICALFASTENERTYPE = _exports.IFCMECHANICALFASTENER = _exports.IFCMEASUREWITHUNIT = _exports.IFCMATERIALUSAGEDEFINITION = _exports.IFCMATERIALRELATIONSHIP = _exports.IFCMATERIALPROPERTIES = _exports.IFCMATERIALPROFILEWITHOFFSETS = _exports.IFCMATERIALPROFILESETUSAGETAPERING = _exports.IFCMATERIALPROFILESETUSAGE = _exports.IFCMATERIALPROFILESET = _exports.IFCMATERIALPROFILE = _exports.IFCMATERIALLIST = _exports.IFCMATERIALLAYERWITHOFFSETS = _exports.IFCMATERIALLAYERSETUSAGE = _exports.IFCMATERIALLAYERSET = _exports.IFCMATERIALLAYER = _exports.IFCMATERIALDEFINITIONREPRESENTATION = _exports.IFCMATERIALDEFINITION = _exports.IFCMATERIALCONSTITUENTSET = _exports.IFCMATERIALCONSTITUENT = _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = _exports.IFCMATERIAL = _exports.IFCMAPPEDITEM = _exports.IFCMAPCONVERSION = _exports.IFCMANIFOLDSOLIDBREP = _exports.IFCLSHAPEPROFILEDEF = _exports.IFCLOOP = _exports.IFCLOCALPLACEMENT = _exports.IFCLINESEGMENT2D = _exports.IFCLINEARPOSITIONINGELEMENT = _exports.IFCLINEARPLACEMENT = _exports.IFCLINE = _exports.IFCLIGHTSOURCESPOT = _exports.IFCLIGHTSOURCEPOSITIONAL = _exports.IFCLIGHTSOURCEGONIOMETRIC = _exports.IFCLIGHTSOURCEDIRECTIONAL = _exports.IFCLIGHTSOURCEAMBIENT = _exports.IFCLIGHTSOURCE = _exports.IFCLIGHTINTENSITYDISTRIBUTION = _exports.IFCLIGHTFIXTURETYPE = _exports.IFCLIGHTFIXTURE = _exports.IFCLIGHTDISTRIBUTIONDATA = _exports.IFCLIBRARYREFERENCE = _exports.IFCLIBRARYINFORMATION = _exports.IFCLAMPTYPE = _exports.IFCLAMP = _exports.IFCLAGTIME = _exports.IFCLABORRESOURCETYPE = _exports.IFCLABORRESOURCE = _exports.IFCJUNCTIONBOXTYPE = _exports.IFCJUNCTIONBOX = _exports.IFCISHAPEPROFILEDEF = _exports.IFCIRREGULARTIMESERIESVALUE = _exports.IFCIRREGULARTIMESERIES = _exports.IFCINVENTORY = _exports.IFCINTERSECTIONCURVE = _exports.IFCINTERCEPTORTYPE = _exports.IFCINTERCEPTOR = _exports.IFCINDEXEDTRIANGLETEXTUREMAP = _exports.IFCINDEXEDTEXTUREMAP = _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = _exports.IFCINDEXEDPOLYGONALFACE = _exports.IFCINDEXEDPOLYCURVE = _exports.IFCINDEXEDCOLOURMAP = _exports.IFCIMAGETEXTURE = _exports.IFCHUMIDIFIERTYPE = _exports.IFCHUMIDIFIER = _exports.IFCHEATEXCHANGERTYPE = _exports.IFCHEATEXCHANGER = _exports.IFCHALFSPACESOLID = _exports.IFCGROUP = _exports.IFCGRIDPLACEMENT = _exports.IFCGRIDAXIS = _exports.IFCGRID = _exports.IFCGEOMETRICSET = _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = _exports.IFCGEOMETRICREPRESENTATIONITEM = _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = _exports.IFCGEOMETRICCURVESET = _exports.IFCGEOGRAPHICELEMENTTYPE = _exports.IFCGEOGRAPHICELEMENT = _exports.IFCFURNITURETYPE = _exports.IFCFURNITURE = _exports.IFCFURNISHINGELEMENTTYPE = _exports.IFCFURNISHINGELEMENT = _exports.IFCFOOTINGTYPE = _exports.IFCFOOTING = _exports.IFCFLOWTREATMENTDEVICETYPE = _exports.IFCFLOWTREATMENTDEVICE = _exports.IFCFLOWTERMINALTYPE = _exports.IFCFLOWTERMINAL = _exports.IFCFLOWSTORAGEDEVICETYPE = _exports.IFCFLOWSTORAGEDEVICE = _exports.IFCFLOWSEGMENTTYPE = _exports.IFCFLOWSEGMENT = _exports.IFCFLOWMOVINGDEVICETYPE = _exports.IFCFLOWMOVINGDEVICE = _exports.IFCFLOWMETERTYPE = _exports.IFCFLOWMETER = _exports.IFCFLOWINSTRUMENTTYPE = _exports.IFCFLOWINSTRUMENT = _exports.IFCFLOWFITTINGTYPE = _exports.IFCFLOWFITTING = _exports.IFCFLOWCONTROLLERTYPE = _exports.IFCFLOWCONTROLLER = _exports.IFCFIXEDREFERENCESWEPTAREASOLID = _exports.IFCFIRESUPPRESSIONTERMINALTYPE = _exports.IFCFIRESUPPRESSIONTERMINAL = _exports.IFCFILTERTYPE = _exports.IFCFILTER = _exports.IFCFILLAREASTYLETILES = _exports.IFCFILLAREASTYLEHATCHING = _exports.IFCFILLAREASTYLE = _exports.IFCFEATUREELEMENTSUBTRACTION = _exports.IFCFEATUREELEMENTADDITION = _exports.IFCFEATUREELEMENT = _exports.IFCFASTENERTYPE = _exports.IFCFASTENER = _exports.IFCFANTYPE = _exports.IFCFAN = _exports.IFCFAILURECONNECTIONCONDITION = _exports.IFCFACILITYPART = _exports.IFCFACILITY = _exports.IFCFACETEDBREPWITHVOIDS = _exports.IFCFACETEDBREP = _exports.IFCFACESURFACE = _exports.IFCFACEOUTERBOUND = _exports.IFCFACEBOUND = _exports.IFCFACEBASEDSURFACEMODEL = _exports.IFCFACE = _exports.IFCEXTRUDEDAREASOLIDTAPERED = _exports.IFCEXTRUDEDAREASOLID = _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = _exports.IFCEXTERNALSPATIALELEMENT = _exports.IFCEXTERNALREFERENCERELATIONSHIP = _exports.IFCEXTERNALREFERENCE = _exports.IFCEXTERNALLYDEFINEDTEXTFONT = _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = _exports.IFCEXTERNALINFORMATION = _exports.IFCEXTENDEDPROPERTIES = _exports.IFCEVENTTYPE = _exports.IFCEVENTTIME = _exports.IFCEVENT = _exports.IFCEVAPORATORTYPE = _exports.IFCEVAPORATOR = _exports.IFCEVAPORATIVECOOLERTYPE = _exports.IFCEVAPORATIVECOOLER = _exports.IFCENGINETYPE = _exports.IFCENGINE = _exports.IFCENERGYCONVERSIONDEVICETYPE = _exports.IFCENERGYCONVERSIONDEVICE = _exports.IFCELLIPSEPROFILEDEF = _exports.IFCELLIPSE = _exports.IFCELEMENTTYPE = _exports.IFCELEMENTQUANTITY = _exports.IFCELEMENTCOMPONENTTYPE = _exports.IFCELEMENTCOMPONENT = _exports.IFCELEMENTASSEMBLYTYPE = _exports.IFCELEMENTASSEMBLY = _exports.IFCELEMENTARYSURFACE = _exports.IFCELEMENT = _exports.IFCELECTRICTIMECONTROLTYPE = _exports.IFCELECTRICTIMECONTROL = _exports.IFCELECTRICMOTORTYPE = _exports.IFCELECTRICMOTOR = _exports.IFCELECTRICGENERATORTYPE = _exports.IFCELECTRICGENERATOR = _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = _exports.IFCELECTRICFLOWSTORAGEDEVICE = _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = _exports.IFCELECTRICDISTRIBUTIONBOARD = _exports.IFCELECTRICAPPLIANCETYPE = _exports.IFCELECTRICAPPLIANCE = _exports.IFCEDGELOOP = _exports.IFCEDGECURVE = _exports.IFCEDGE = _exports.IFCDUCTSILENCERTYPE = _exports.IFCDUCTSILENCER = _exports.IFCDUCTSEGMENTTYPE = _exports.IFCDUCTSEGMENT = _exports.IFCDUCTFITTINGTYPE = _exports.IFCDUCTFITTING = _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = _exports.IFCDOORTYPE = _exports.IFCDOORSTYLE = _exports.IFCDOORSTANDARDCASE = _exports.IFCDOORPANELPROPERTIES = _exports.IFCDOORLININGPROPERTIES = _exports.IFCDOOR = _exports.IFCDOCUMENTREFERENCE = _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = _exports.IFCDOCUMENTINFORMATION = _exports.IFCDISTRIBUTIONSYSTEM = _exports.IFCDISTRIBUTIONPORT = _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = _exports.IFCDISTRIBUTIONFLOWELEMENT = _exports.IFCDISTRIBUTIONELEMENTTYPE = _exports.IFCDISTRIBUTIONELEMENT = _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = _exports.IFCDISTRIBUTIONCONTROLELEMENT = _exports.IFCDISTRIBUTIONCIRCUIT = _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = _exports.IFCDISTRIBUTIONCHAMBERELEMENT = _exports.IFCDISTANCEEXPRESSION = _exports.IFCDISCRETEACCESSORYTYPE = _exports.IFCDISCRETEACCESSORY = _exports.IFCDIRECTION = _exports.IFCDIMENSIONALEXPONENTS = _exports.IFCDERIVEDUNITELEMENT = _exports.IFCDERIVEDUNIT = _exports.IFCDERIVEDPROFILEDEF = _exports.IFCDEEPFOUNDATIONTYPE = _exports.IFCDEEPFOUNDATION = _exports.IFCDAMPERTYPE = _exports.IFCDAMPER = _exports.IFCCYLINDRICALSURFACE = _exports.IFCCURVESTYLEFONTPATTERN = _exports.IFCCURVESTYLEFONTANDSCALING = _exports.IFCCURVESTYLEFONT = _exports.IFCCURVESTYLE = _exports.IFCCURVESEGMENT2D = _exports.IFCCURVEBOUNDEDSURFACE = _exports.IFCCURVEBOUNDEDPLANE = _exports.IFCCURVE = _exports.IFCCURTAINWALLTYPE = _exports.IFCCURTAINWALL = _exports.IFCCURRENCYRELATIONSHIP = _exports.IFCCSHAPEPROFILEDEF = _exports.IFCCSGSOLID = _exports.IFCCSGPRIMITIVE3D = _exports.IFCCREWRESOURCETYPE = _exports.IFCCREWRESOURCE = _exports.IFCCOVERINGTYPE = _exports.IFCCOVERING = _exports.IFCCOSTVALUE = _exports.IFCCOSTSCHEDULE = _exports.IFCCOSTITEM = _exports.IFCCOORDINATEREFERENCESYSTEM = _exports.IFCCOORDINATEOPERATION = _exports.IFCCOOLINGTOWERTYPE = _exports.IFCCOOLINGTOWER = _exports.IFCCOOLEDBEAMTYPE = _exports.IFCCOOLEDBEAM = _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = _exports.IFCCONVERSIONBASEDUNIT = _exports.IFCCONTROLLERTYPE = _exports.IFCCONTROLLER = _exports.IFCCONTROL = _exports.IFCCONTEXTDEPENDENTUNIT = _exports.IFCCONTEXT = _exports.IFCCONSTRUCTIONRESOURCETYPE = _exports.IFCCONSTRUCTIONRESOURCE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = _exports.IFCCONSTRUCTIONMATERIALRESOURCE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = _exports.IFCCONSTRAINT = _exports.IFCCONNECTIONVOLUMEGEOMETRY = _exports.IFCCONNECTIONSURFACEGEOMETRY = _exports.IFCCONNECTIONPOINTGEOMETRY = _exports.IFCCONNECTIONPOINTECCENTRICITY = _exports.IFCCONNECTIONGEOMETRY = _exports.IFCCONNECTIONCURVEGEOMETRY = _exports.IFCCONNECTEDFACESET = _exports.IFCCONIC = _exports.IFCCONDENSERTYPE = _exports.IFCCONDENSER = _exports.IFCCOMPRESSORTYPE = _exports.IFCCOMPRESSOR = _exports.IFCCOMPOSITEPROFILEDEF = _exports.IFCCOMPOSITECURVESEGMENT = _exports.IFCCOMPOSITECURVEONSURFACE = _exports.IFCCOMPOSITECURVE = _exports.IFCCOMPLEXPROPERTYTEMPLATE = _exports.IFCCOMPLEXPROPERTY = _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = _exports.IFCCOMMUNICATIONSAPPLIANCE = _exports.IFCCOLUMNTYPE = _exports.IFCCOLUMNSTANDARDCASE = _exports.IFCCOLUMN = _exports.IFCCOLOURSPECIFICATION = _exports.IFCCOLOURRGBLIST = _exports.IFCCOLOURRGB = _exports.IFCCOILTYPE = _exports.IFCCOIL = _exports.IFCCLOSEDSHELL = _exports.IFCCLASSIFICATIONREFERENCE = _exports.IFCCLASSIFICATION = _exports.IFCCIVILELEMENTTYPE = _exports.IFCCIVILELEMENT = _exports.IFCCIRCULARARCSEGMENT2D = _exports.IFCCIRCLEPROFILEDEF = _exports.IFCCIRCLEHOLLOWPROFILEDEF = _exports.IFCCIRCLE = _exports.IFCCHIMNEYTYPE = _exports.IFCCHIMNEY = _exports.IFCCHILLERTYPE = _exports.IFCCHILLER = _exports.IFCCENTERLINEPROFILEDEF = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = _exports.IFCCARTESIANPOINTLIST3D = _exports.IFCCARTESIANPOINTLIST2D = _exports.IFCCARTESIANPOINTLIST = _exports.IFCCARTESIANPOINT = _exports.IFCCAISSONFOUNDATIONTYPE = _exports.IFCCAISSONFOUNDATION = _exports.IFCCABLESEGMENTTYPE = _exports.IFCCABLESEGMENT = _exports.IFCCABLEFITTINGTYPE = _exports.IFCCABLEFITTING = _exports.IFCCABLECARRIERSEGMENTTYPE = _exports.IFCCABLECARRIERSEGMENT = _exports.IFCCABLECARRIERFITTINGTYPE = _exports.IFCCABLECARRIERFITTING = _exports.IFCBURNERTYPE = _exports.IFCBURNER = _exports.IFCBUILDINGSYSTEM = _exports.IFCBUILDINGSTOREY = _exports.IFCBUILDINGELEMENTTYPE = _exports.IFCBUILDINGELEMENTPROXYTYPE = _exports.IFCBUILDINGELEMENTPROXY = _exports.IFCBUILDINGELEMENTPARTTYPE = _exports.IFCBUILDINGELEMENTPART = _exports.IFCBUILDINGELEMENT = _exports.IFCBUILDING = _exports.IFCBSPLINESURFACEWITHKNOTS = _exports.IFCBSPLINESURFACE = _exports.IFCBSPLINECURVEWITHKNOTS = _exports.IFCBSPLINECURVE = _exports.IFCBRIDGEPART = _exports.IFCBRIDGE = _exports.IFCBOXEDHALFSPACE = _exports.IFCBOUNDINGBOX = _exports.IFCBOUNDEDSURFACE = _exports.IFCBOUNDEDCURVE = _exports.IFCBOUNDARYNODECONDITIONWARPING = _exports.IFCBOUNDARYNODECONDITION = _exports.IFCBOUNDARYFACECONDITION = _exports.IFCBOUNDARYEDGECONDITION = _exports.IFCBOUNDARYCURVE = _exports.IFCBOUNDARYCONDITION = _exports.IFCBOOLEANRESULT = _exports.IFCBOOLEANCLIPPINGRESULT = _exports.IFCBOILERTYPE = _exports.IFCBOILER = _exports.IFCBLOCK = _exports.IFCBLOBTEXTURE = _exports.IFCBEARINGTYPE = _exports.IFCBEARING = _exports.IFCBEAMTYPE = _exports.IFCBEAMSTANDARDCASE = _exports.IFCBEAM = _exports.IFCAXIS2PLACEMENT3D = _exports.IFCAXIS2PLACEMENT2D = _exports.IFCAXIS1PLACEMENT = _exports.IFCAUDIOVISUALAPPLIANCETYPE = _exports.IFCAUDIOVISUALAPPLIANCE = _exports.IFCASYMMETRICISHAPEPROFILEDEF = _exports.IFCASSET = _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = _exports.IFCARBITRARYOPENPROFILEDEF = _exports.IFCARBITRARYCLOSEDPROFILEDEF = _exports.IFCAPPROVALRELATIONSHIP = _exports.IFCAPPROVAL = _exports.IFCAPPLIEDVALUE = _exports.IFCAPPLICATION = _exports.IFCANNOTATIONFILLAREA = _exports.IFCANNOTATION = _exports.IFCALIGNMENTCURVE = _exports.IFCALIGNMENT2DVERTICALSEGMENT = _exports.IFCALIGNMENT2DVERTICAL = _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = _exports.IFCALIGNMENT2DVERSEGLINE = _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = _exports.IFCALIGNMENT2DSEGMENT = _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = _exports.IFCALIGNMENT2DHORIZONTAL = _exports.IFCALIGNMENT = _exports.IFCALARMTYPE = _exports.IFCALARM = _exports.IFCAIRTOAIRHEATRECOVERYTYPE = _exports.IFCAIRTOAIRHEATRECOVERY = _exports.IFCAIRTERMINALTYPE = _exports.IFCAIRTERMINALBOXTYPE = _exports.IFCAIRTERMINALBOX = _exports.IFCAIRTERMINAL = _exports.IFCADVANCEDFACE = _exports.IFCADVANCEDBREPWITHVOIDS = _exports.IFCADVANCEDBREP = _exports.IFCADDRESS = _exports.IFCACTUATORTYPE = _exports.IFCACTUATOR = _exports.IFCACTORROLE = _exports.IFCACTOR = _exports.IFCACTIONREQUEST = _exports.Handle = _exports.FromRawLineData = _exports.ENUM = _exports.EMPTY = void 0;
  _exports.Value = Value;
  _exports.ms = ms;

  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }

  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  var __defProp = Object.defineProperty;
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
  var __hasOwnProp = Object.prototype.hasOwnProperty;
  var __propIsEnum = Object.prototype.propertyIsEnumerable;

  var __defNormalProp = function __defNormalProp(obj, key, value) {
    return key in obj ? __defProp(obj, key, {
      enumerable: true,
      configurable: true,
      writable: true,
      value: value
    }) : obj[key] = value;
  };

  var __spreadValues = function __spreadValues(a, b) {
    for (var prop in b || (b = {})) {
      if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
    }

    if (__getOwnPropSymbols) {
      var _iterator = _createForOfIteratorHelper(__getOwnPropSymbols(b)),
          _step;

      try {
        for (_iterator.s(); !(_step = _iterator.n()).done;) {
          var prop = _step.value;
          if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
        }
      } catch (err) {
        _iterator.e(err);
      } finally {
        _iterator.f();
      }
    }

    return a;
  };

  var __require = function __require(x) {
    if (typeof require !== "undefined") return require(x);
    throw new Error('Dynamic require of "' + x + '" is not supported');
  };

  var __commonJS = function __commonJS(cb, mod) {
    return function __require2() {
      return mod || (0, cb[Object.keys(cb)[0]])((mod = {
        exports: {}
      }).exports, mod), mod.exports;
    };
  };

  var __async = function __async(__this, __arguments, generator) {
    return new Promise(function (resolve, reject) {
      var fulfilled = function fulfilled(value) {
        try {
          step(generator.next(value));
        } catch (e) {
          reject(e);
        }
      };

      var rejected = function rejected(value) {
        try {
          step(generator.throw(value));
        } catch (e) {
          reject(e);
        }
      };

      var step = function step(x) {
        return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
      };

      step((generator = generator.apply(__this, __arguments)).next());
    });
  }; // (disabled):crypto


  var require_crypto = __commonJS({
    "(disabled):crypto": function disabledCrypto() {}
  }); // dist/web-ifc.js


  var require_web_ifc = __commonJS({
    "dist/web-ifc.js": function distWebIfcJs(exports, module) {
      var WebIFCWasm2 = function () {
        var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;

        if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename;
        return function (WebIFCWasm3) {
          WebIFCWasm3 = WebIFCWasm3 || {};
          var Module = typeof WebIFCWasm3 !== "undefined" ? WebIFCWasm3 : {};
          var readyPromiseResolve, readyPromiseReject;
          Module["ready"] = new Promise(function (resolve, reject) {
            readyPromiseResolve = resolve;
            readyPromiseReject = reject;
          });
          var moduleOverrides = {};
          var key;

          for (key in Module) {
            if (Module.hasOwnProperty(key)) {
              moduleOverrides[key] = Module[key];
            }
          }

          var arguments_ = [];
          var thisProgram = "./this.program";

          var quit_ = function quit_(status, toThrow) {
            throw toThrow;
          };

          var ENVIRONMENT_IS_WEB = false;
          var ENVIRONMENT_IS_WORKER = false;
          var ENVIRONMENT_IS_NODE = false;
          var ENVIRONMENT_IS_SHELL = false;
          ENVIRONMENT_IS_WEB = typeof window === "object";
          ENVIRONMENT_IS_WORKER = typeof importScripts === "function";
          ENVIRONMENT_IS_NODE = typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string";
          ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
          var scriptDirectory = "";

          function locateFile(path) {
            if (Module["locateFile"]) {
              return Module["locateFile"](path, scriptDirectory);
            }

            return scriptDirectory + path;
          }

          var read_, readAsync, readBinary, setWindowTitle;
          var nodeFS;
          var nodePath;

          if (ENVIRONMENT_IS_NODE) {
            if (ENVIRONMENT_IS_WORKER) {
              scriptDirectory = __require("path").dirname(scriptDirectory) + "/";
            } else {
              scriptDirectory = __dirname + "/";
            }

            read_ = function shell_read(filename, binary) {
              if (!nodeFS) nodeFS = __require("fs");
              if (!nodePath) nodePath = __require("path");
              filename = nodePath["normalize"](filename);
              return nodeFS["readFileSync"](filename, binary ? null : "utf8");
            };

            readBinary = function readBinary2(filename) {
              var ret = read_(filename, true);

              if (!ret.buffer) {
                ret = new Uint8Array(ret);
              }

              assert(ret.buffer);
              return ret;
            };

            if (process["argv"].length > 1) {
              thisProgram = process["argv"][1].replace(/\\/g, "/");
            }

            arguments_ = process["argv"].slice(2);
            process["on"]("uncaughtException", function (ex) {
              if (!(ex instanceof ExitStatus)) {
                throw ex;
              }
            });
            process["on"]("unhandledRejection", abort);

            quit_ = function quit_(status) {
              process["exit"](status);
            };

            Module["inspect"] = function () {
              return "[Emscripten Module object]";
            };
          } else if (ENVIRONMENT_IS_SHELL) {
            if (typeof read != "undefined") {
              read_ = function shell_read(f) {
                return read(f);
              };
            }

            readBinary = function readBinary2(f) {
              var data;

              if (typeof readbuffer === "function") {
                return new Uint8Array(readbuffer(f));
              }

              data = read(f, "binary");
              assert(typeof data === "object");
              return data;
            };

            if (typeof scriptArgs != "undefined") {
              arguments_ = scriptArgs;
            } else if (typeof arguments != "undefined") {
              arguments_ = arguments;
            }

            if (typeof quit === "function") {
              quit_ = function quit_(status) {
                quit(status);
              };
            }

            if (typeof print !== "undefined") {
              if (typeof console === "undefined") console = {};
              console.log = print;
              console.warn = console.error = typeof printErr !== "undefined" ? printErr : print;
            }
          } else 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.lastIndexOf("/") + 1);
            } else {
              scriptDirectory = "";
            }

            {
              read_ = function shell_read(url) {
                var xhr = new XMLHttpRequest();
                xhr.open("GET", url, false);
                xhr.send(null);
                return xhr.responseText;
              };

              if (ENVIRONMENT_IS_WORKER) {
                readBinary = function readBinary2(url) {
                  var xhr = new XMLHttpRequest();
                  xhr.open("GET", url, false);
                  xhr.responseType = "arraybuffer";
                  xhr.send(null);
                  return new Uint8Array(xhr.response);
                };
              }

              readAsync = function readAsync2(url, onload, onerror) {
                var xhr = new XMLHttpRequest();
                xhr.open("GET", url, true);
                xhr.responseType = "arraybuffer";

                xhr.onload = function xhr_onload() {
                  if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
                    onload(xhr.response);
                    return;
                  }

                  onerror();
                };

                xhr.onerror = onerror;
                xhr.send(null);
              };
            }

            setWindowTitle = function setWindowTitle(title) {
              document.title = title;
            };
          } else {}

          var out = Module["print"] || console.log.bind(console);
          var err = Module["printErr"] || console.warn.bind(console);

          for (key in moduleOverrides) {
            if (moduleOverrides.hasOwnProperty(key)) {
              Module[key] = moduleOverrides[key];
            }
          }

          moduleOverrides = null;
          if (Module["arguments"]) arguments_ = Module["arguments"];
          if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
          if (Module["quit"]) quit_ = Module["quit"];
          var STACK_ALIGN = 16;

          function alignMemory(size, factor) {
            if (!factor) factor = STACK_ALIGN;
            return Math.ceil(size / factor) * factor;
          }

          var tempRet0 = 0;

          var setTempRet0 = function setTempRet0(value) {
            tempRet0 = value;
          };

          var wasmBinary;
          if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
          var noExitRuntime;
          if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];

          if (typeof WebAssembly !== "object") {
            abort("no native wasm support detected");
          }

          var wasmMemory;
          var ABORT = false;
          var EXITSTATUS = 0;

          function assert(condition, text) {
            if (!condition) {
              abort("Assertion failed: " + text);
            }
          }

          var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : void 0;

          function UTF8ArrayToString(heap, idx, maxBytesToRead) {
            idx >>>= 0;
            var endIdx = idx + maxBytesToRead;
            var endPtr = idx;

            while (heap[endPtr >>> 0] && !(endPtr >= endIdx)) {
              ++endPtr;
            }

            if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {
              return UTF8Decoder.decode(heap.subarray(idx >>> 0, endPtr >>> 0));
            } else {
              var str = "";

              while (idx < endPtr) {
                var u0 = heap[idx++ >>> 0];

                if (!(u0 & 128)) {
                  str += String.fromCharCode(u0);
                  continue;
                }

                var u1 = heap[idx++ >>> 0] & 63;

                if ((u0 & 224) == 192) {
                  str += String.fromCharCode((u0 & 31) << 6 | u1);
                  continue;
                }

                var u2 = heap[idx++ >>> 0] & 63;

                if ((u0 & 240) == 224) {
                  u0 = (u0 & 15) << 12 | u1 << 6 | u2;
                } else {
                  u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++ >>> 0] & 63;
                }

                if (u0 < 65536) {
                  str += String.fromCharCode(u0);
                } else {
                  var ch = u0 - 65536;
                  str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
                }
              }
            }

            return str;
          }

          function UTF8ToString(ptr, maxBytesToRead) {
            ptr >>>= 0;
            return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
          }

          function 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 stringToUTF8(str, outPtr, maxBytesToWrite) {
            return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
          }

          function lengthBytesUTF8(str) {
            var len = 0;

            for (var i = 0; i < str.length; ++i) {
              var u = str.charCodeAt(i);
              if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;
              if (u <= 127) ++len;else if (u <= 2047) len += 2;else if (u <= 65535) len += 3;else len += 4;
            }

            return len;
          }

          var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : void 0;

          function 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));
            } else {
              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;
            }
          }

          function 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;
          }

          function lengthBytesUTF16(str) {
            return str.length * 2;
          }

          function 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;
          }

          function 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;
          }

          function 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;
          }

          function writeArrayToMemory(array, buffer2) {
            HEAP8.set(array, buffer2 >>> 0);
          }

          function writeAsciiToMemory(str, buffer2, dontAddNull) {
            for (var i = 0; i < str.length; ++i) {
              HEAP8[buffer2++ >>> 0] = str.charCodeAt(i);
            }

            if (!dontAddNull) HEAP8[buffer2 >>> 0] = 0;
          }

          function alignUp(x, multiple) {
            if (x % multiple > 0) {
              x += multiple - x % multiple;
            }

            return x;
          }

          var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;

          function updateGlobalBufferAndViews(buf) {
            buffer = buf;
            Module["HEAP8"] = HEAP8 = new Int8Array(buf);
            Module["HEAP16"] = HEAP16 = new Int16Array(buf);
            Module["HEAP32"] = HEAP32 = new Int32Array(buf);
            Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
            Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
            Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
            Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
            Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
          }

          var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;

          if (Module["wasmMemory"]) {
            wasmMemory = Module["wasmMemory"];
          } else {
            wasmMemory = new WebAssembly.Memory({
              "initial": INITIAL_MEMORY / 65536,
              "maximum": 4294967296 / 65536
            });
          }

          if (wasmMemory) {
            buffer = wasmMemory.buffer;
          }

          INITIAL_MEMORY = buffer.byteLength;
          updateGlobalBufferAndViews(buffer);
          var wasmTable;
          var __ATPRERUN__ = [];
          var __ATINIT__ = [];
          var __ATMAIN__ = [];
          var __ATPOSTRUN__ = [];
          var runtimeInitialized = false;
          var runtimeExited = 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();
            TTY.init();
            callRuntimeCallbacks(__ATINIT__);
          }

          function preMain() {
            FS.ignorePermissions = false;
            callRuntimeCallbacks(__ATMAIN__);
          }

          function exitRuntime() {
            runtimeExited = true;
          }

          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 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();
              }
            }
          }

          Module["preloadedImages"] = {};
          Module["preloadedAudios"] = {};

          function abort(what) {
            if (Module["onAbort"]) {
              Module["onAbort"](what);
            }

            what += "";
            err(what);
            ABORT = true;
            EXITSTATUS = 1;
            what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
            var e = new WebAssembly.RuntimeError(what);
            readyPromiseReject(e);
            throw e;
          }

          function hasPrefix(str, prefix) {
            return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0;
          }

          var dataURIPrefix = "data:application/octet-stream;base64,";

          function isDataURI(filename) {
            return hasPrefix(filename, dataURIPrefix);
          }

          var fileURIPrefix = "file://";

          function isFileURI(filename) {
            return hasPrefix(filename, fileURIPrefix);
          }

          var wasmBinaryFile = WasmPath + "web-ifc.wasm";

          if (!isDataURI(wasmBinaryFile)) {
            wasmBinaryFile = locateFile(wasmBinaryFile);
          }

          function getBinary() {
            try {
              if (wasmBinary) {
                return new Uint8Array(wasmBinary);
              }

              if (readBinary) {
                return readBinary(wasmBinaryFile);
              } else {
                throw "both async and sync fetching of the wasm failed";
              }
            } catch (err2) {
              abort(err2);
            }
          }

          function getBinaryPromise() {
            if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === "function" && !isFileURI(wasmBinaryFile)) {
              return fetch(wasmBinaryFile, {
                credentials: "same-origin"
              }).then(function (response) {
                if (!response["ok"]) {
                  throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
                }

                return response["arrayBuffer"]();
              }).catch(function () {
                return getBinary();
              });
            }

            return Promise.resolve().then(getBinary);
          }

          function createWasm() {
            var info = {
              "a": asmLibraryArg
            };

            function receiveInstance(instance, module2) {
              var exports3 = instance.exports;
              Module["asm"] = exports3;
              wasmTable = Module["asm"]["X"];
              removeRunDependency("wasm-instantiate");
            }

            addRunDependency("wasm-instantiate");

            function receiveInstantiatedSource(output) {
              receiveInstance(output["instance"]);
            }

            function instantiateArrayBuffer(receiver) {
              return getBinaryPromise().then(function (binary) {
                return WebAssembly.instantiate(binary, info);
              }).then(receiver, function (reason) {
                err("failed to asynchronously prepare wasm: " + reason);
                abort(reason);
              });
            }

            function instantiateAsync() {
              if (!wasmBinary && typeof WebAssembly.instantiateStreaming === "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && typeof fetch === "function") {
                return fetch(wasmBinaryFile, {
                  credentials: "same-origin"
                }).then(function (response) {
                  var result = WebAssembly.instantiateStreaming(response, info);
                  return result.then(receiveInstantiatedSource, function (reason) {
                    err("wasm streaming compile failed: " + reason);
                    err("falling back to ArrayBuffer instantiation");
                    return instantiateArrayBuffer(receiveInstantiatedSource);
                  });
                });
              } else {
                return instantiateArrayBuffer(receiveInstantiatedSource);
              }
            }

            if (Module["instantiateWasm"]) {
              try {
                var exports2 = Module["instantiateWasm"](info, receiveInstance);
                return exports2;
              } catch (e) {
                err("Module.instantiateWasm callback failed with error: " + e);
                return false;
              }
            }

            instantiateAsync().catch(readyPromiseReject);
            return {};
          }

          var tempDouble;
          var tempI64;

          function callRuntimeCallbacks(callbacks) {
            while (callbacks.length > 0) {
              var callback = callbacks.shift();

              if (typeof callback == "function") {
                callback(Module);
                continue;
              }

              var func = callback.func;

              if (typeof func === "number") {
                if (callback.arg === void 0) {
                  wasmTable.get(func)();
                } else {
                  wasmTable.get(func)(callback.arg);
                }
              } else {
                func(callback.arg === void 0 ? null : callback.arg);
              }
            }
          }

          function dynCallLegacy(sig, ptr, args) {
            if (args && args.length) {
              return Module["dynCall_" + sig].apply(null, [ptr].concat(args));
            }

            return Module["dynCall_" + sig].call(null, ptr);
          }

          function dynCall(sig, ptr, args) {
            if (sig.indexOf("j") != -1) {
              return dynCallLegacy(sig, ptr, args);
            }

            return wasmTable.get(ptr).apply(null, args);
          }

          function ___assert_fail(condition, filename, line, func) {
            abort("Assertion failed: " + UTF8ToString(condition) + ", at: " + [filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function"]);
          }

          function setErrNo(value) {
            HEAP32[___errno_location() >>> 2] = value;
            return value;
          }

          var PATH = {
            splitPath: function splitPath(filename) {
              var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
              return splitPathRe.exec(filename).slice(1);
            },
            normalizeArray: function 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: function normalize(path) {
              var isAbsolute = path.charAt(0) === "/",
                  trailingSlash = path.substr(-1) === "/";
              path = PATH.normalizeArray(path.split("/").filter(function (p) {
                return !!p;
              }), !isAbsolute).join("/");

              if (!path && !isAbsolute) {
                path = ".";
              }

              if (path && trailingSlash) {
                path += "/";
              }

              return (isAbsolute ? "/" : "") + path;
            },
            dirname: function 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: function 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);
            },
            extname: function extname(path) {
              return PATH.splitPath(path)[3];
            },
            join: function join() {
              var paths = Array.prototype.slice.call(arguments, 0);
              return PATH.normalize(paths.join("/"));
            },
            join2: function join2(l, r) {
              return PATH.normalize(l + "/" + r);
            }
          };

          function getRandomDevice() {
            if (typeof crypto === "object" && typeof crypto["getRandomValues"] === "function") {
              var randomBuffer = new Uint8Array(1);
              return function () {
                crypto.getRandomValues(randomBuffer);
                return randomBuffer[0];
              };
            } else if (ENVIRONMENT_IS_NODE) {
              try {
                var crypto_module = require_crypto();
                return function () {
                  return crypto_module["randomBytes"](1)[0];
                };
              } catch (e) {}
            }

            return function () {
              abort("randomDevice");
            };
          }

          var PATH_FS = {
            resolve: function resolve() {
              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.charAt(0) === "/";
              }

              resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(function (p) {
                return !!p;
              }), !resolvedAbsolute).join("/");
              return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
            },
            relative: function 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 TTY = {
            ttys: [],
            init: function init() {},
            shutdown: function shutdown() {},
            register: function register(dev, ops) {
              TTY.ttys[dev] = {
                input: [],
                output: [],
                ops: ops
              };
              FS.registerDevice(dev, TTY.stream_ops);
            },
            stream_ops: {
              open: function open(stream) {
                var tty = TTY.ttys[stream.node.rdev];

                if (!tty) {
                  throw new FS.ErrnoError(43);
                }

                stream.tty = tty;
                stream.seekable = false;
              },
              close: function close(stream) {
                stream.tty.ops.flush(stream.tty);
              },
              flush: function flush(stream) {
                stream.tty.ops.flush(stream.tty);
              },
              read: function read(stream, buffer2, 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++;
                  buffer2[offset + i] = result;
                }

                if (bytesRead) {
                  stream.node.timestamp = Date.now();
                }

                return bytesRead;
              },
              write: function write(stream, buffer2, 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, buffer2[offset + i]);
                  }
                } catch (e) {
                  throw new FS.ErrnoError(29);
                }

                if (length) {
                  stream.node.timestamp = Date.now();
                }

                return i;
              }
            },
            default_tty_ops: {
              get_char: function get_char(tty) {
                if (!tty.input.length) {
                  var result = null;

                  if (ENVIRONMENT_IS_NODE) {
                    var BUFSIZE = 256;
                    var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);
                    var bytesRead = 0;

                    try {
                      bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null);
                    } catch (e) {
                      if (e.toString().indexOf("EOF") != -1) bytesRead = 0;else throw e;
                    }

                    if (bytesRead > 0) {
                      result = buf.slice(0, bytesRead).toString("utf-8");
                    } else {
                      result = null;
                    }
                  } else 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;
                  }

                  tty.input = intArrayFromString(result, true);
                }

                return tty.input.shift();
              },
              put_char: function put_char(tty, val) {
                if (val === null || val === 10) {
                  out(UTF8ArrayToString(tty.output, 0));
                  tty.output = [];
                } else {
                  if (val != 0) tty.output.push(val);
                }
              },
              flush: function flush(tty) {
                if (tty.output && tty.output.length > 0) {
                  out(UTF8ArrayToString(tty.output, 0));
                  tty.output = [];
                }
              }
            },
            default_tty1_ops: {
              put_char: function put_char(tty, val) {
                if (val === null || val === 10) {
                  err(UTF8ArrayToString(tty.output, 0));
                  tty.output = [];
                } else {
                  if (val != 0) tty.output.push(val);
                }
              },
              flush: function flush(tty) {
                if (tty.output && tty.output.length > 0) {
                  err(UTF8ArrayToString(tty.output, 0));
                  tty.output = [];
                }
              }
            }
          };

          function mmapAlloc(size) {
            var alignedSize = alignMemory(size, 16384);

            var ptr = _malloc(alignedSize);

            while (size < alignedSize) {
              HEAP8[ptr + size++ >>> 0] = 0;
            }

            return ptr;
          }

          var MEMFS = {
            ops_table: null,
            mount: function mount(_mount) {
              return MEMFS.createNode(null, "/", 16384 | 511, 0);
            },
            createNode: function createNode(parent, name2, 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, name2, 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[name2] = node;
              }

              return node;
            },
            getFileDataAsRegularArray: function getFileDataAsRegularArray(node) {
              if (node.contents && node.contents.subarray) {
                var arr = [];

                for (var i = 0; i < node.usedBytes; ++i) {
                  arr.push(node.contents[i]);
                }

                return arr;
              }

              return node.contents;
            },
            getFileDataAsTypedArray: function 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: function expandFileStorage(node, newCapacity) {
              newCapacity >>>= 0;
              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);
              return;
            },
            resizeFileStorage: function resizeFileStorage(node, newSize) {
              newSize >>>= 0;
              if (node.usedBytes == newSize) return;

              if (newSize == 0) {
                node.contents = null;
                node.usedBytes = 0;
                return;
              }

              if (!node.contents || node.contents.subarray) {
                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;
                return;
              }

              if (!node.contents) node.contents = [];
              if (node.contents.length > newSize) node.contents.length = newSize;else while (node.contents.length < newSize) {
                node.contents.push(0);
              }
              node.usedBytes = newSize;
            },
            node_ops: {
              getattr: function 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: function 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: function lookup(parent, name2) {
                throw FS.genericErrors[44];
              },
              mknod: function mknod(parent, name2, mode, dev) {
                return MEMFS.createNode(parent, name2, mode, dev);
              },
              rename: function 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.name = new_name;
                new_dir.contents[new_name] = old_node;
                old_node.parent = new_dir;
              },
              unlink: function unlink(parent, name2) {
                delete parent.contents[name2];
              },
              rmdir: function rmdir(parent, name2) {
                var node = FS.lookupNode(parent, name2);

                for (var i in node.contents) {
                  throw new FS.ErrnoError(55);
                }

                delete parent.contents[name2];
              },
              readdir: function readdir(node) {
                var entries = [".", ".."];

                for (var key2 in node.contents) {
                  if (!node.contents.hasOwnProperty(key2)) {
                    continue;
                  }

                  entries.push(key2);
                }

                return entries;
              },
              symlink: function symlink(parent, newname, oldpath) {
                var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
                node.link = oldpath;
                return node;
              },
              readlink: function readlink(node) {
                if (!FS.isLink(node.mode)) {
                  throw new FS.ErrnoError(28);
                }

                return node.link;
              }
            },
            stream_ops: {
              read: function read(stream, buffer2, 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) {
                  buffer2.set(contents.subarray(position, position + size), offset);
                } else {
                  for (var i = 0; i < size; i++) {
                    buffer2[offset + i] = contents[position + i];
                  }
                }

                return size;
              },
              write: function write(stream, buffer2, offset, length, position, canOwn) {
                if (buffer2.buffer === HEAP8.buffer) {
                  canOwn = false;
                }

                if (!length) return 0;
                var node = stream.node;
                node.timestamp = Date.now();

                if (buffer2.subarray && (!node.contents || node.contents.subarray)) {
                  if (canOwn) {
                    node.contents = buffer2.subarray(offset, offset + length);
                    node.usedBytes = length;
                    return length;
                  } else if (node.usedBytes === 0 && position === 0) {
                    node.contents = buffer2.slice(offset, offset + length);
                    node.usedBytes = length;
                    return length;
                  } else if (position + length <= node.usedBytes) {
                    node.contents.set(buffer2.subarray(offset, offset + length), position);
                    return length;
                  }
                }

                MEMFS.expandFileStorage(node, position + length);

                if (node.contents.subarray && buffer2.subarray) {
                  node.contents.set(buffer2.subarray(offset, offset + length), position);
                } else {
                  for (var i = 0; i < length; i++) {
                    node.contents[position + i] = buffer2[offset + i];
                  }
                }

                node.usedBytes = Math.max(node.usedBytes, position + length);
                return length;
              },
              llseek: function 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: function allocate(stream, offset, length) {
                MEMFS.expandFileStorage(stream.node, offset + length);
                stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
              },
              mmap: function mmap(stream, address, length, position, prot, flags) {
                assert(address === 0);

                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 === 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);
                  }

                  ptr >>>= 0;
                  HEAP8.set(contents, ptr >>> 0);
                }

                return {
                  ptr: ptr,
                  allocated: allocated
                };
              },
              msync: function msync(stream, buffer2, offset, length, mmapFlags) {
                if (!FS.isFile(stream.node.mode)) {
                  throw new FS.ErrnoError(43);
                }

                if (mmapFlags & 2) {
                  return 0;
                }

                var bytesWritten = MEMFS.stream_ops.write(stream, buffer2, 0, length, offset, false);
                return 0;
              }
            }
          };
          var FS = {
            root: null,
            mounts: [],
            devices: {},
            streams: [],
            nextInode: 1,
            nameTable: null,
            currentPath: "/",
            initialized: false,
            ignorePermissions: true,
            trackingDelegate: {},
            tracking: {
              openFlags: {
                READ: 1,
                WRITE: 2
              }
            },
            ErrnoError: null,
            genericErrors: {},
            filesystems: null,
            syncFSRequests: 0,
            lookupPath: function lookupPath(path, opts) {
              path = PATH_FS.resolve(FS.cwd(), path);
              opts = opts || {};
              if (!path) return {
                path: "",
                node: null
              };
              var defaults = {
                follow_mount: true,
                recurse_count: 0
              };

              for (var key2 in defaults) {
                if (opts[key2] === void 0) {
                  opts[key2] = defaults[key2];
                }
              }

              if (opts.recurse_count > 8) {
                throw new FS.ErrnoError(32);
              }

              var parts = PATH.normalizeArray(path.split("/").filter(function (p) {
                return !!p;
              }), false);
              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
                    });
                    current = lookup.node;

                    if (count++ > 40) {
                      throw new FS.ErrnoError(32);
                    }
                  }
                }
              }

              return {
                path: current_path,
                node: current
              };
            },
            getPath: function 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: function hashName(parentid, name2) {
              var hash = 0;

              for (var i = 0; i < name2.length; i++) {
                hash = (hash << 5) - hash + name2.charCodeAt(i) | 0;
              }

              return (parentid + hash >>> 0) % FS.nameTable.length;
            },
            hashAddNode: function hashAddNode(node) {
              var hash = FS.hashName(node.parent.id, node.name);
              node.name_next = FS.nameTable[hash];
              FS.nameTable[hash] = node;
            },
            hashRemoveNode: function 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: function lookupNode(parent, name2) {
              var errCode = FS.mayLookup(parent);

              if (errCode) {
                throw new FS.ErrnoError(errCode, parent);
              }

              var hash = FS.hashName(parent.id, name2);

              for (var node = FS.nameTable[hash]; node; node = node.name_next) {
                var nodeName = node.name;

                if (node.parent.id === parent.id && nodeName === name2) {
                  return node;
                }
              }

              return FS.lookup(parent, name2);
            },
            createNode: function createNode(parent, name2, mode, rdev) {
              var node = new FS.FSNode(parent, name2, mode, rdev);
              FS.hashAddNode(node);
              return node;
            },
            destroyNode: function destroyNode(node) {
              FS.hashRemoveNode(node);
            },
            isRoot: function isRoot(node) {
              return node === node.parent;
            },
            isMountpoint: function isMountpoint(node) {
              return !!node.mounted;
            },
            isFile: function isFile(mode) {
              return (mode & 61440) === 32768;
            },
            isDir: function isDir(mode) {
              return (mode & 61440) === 16384;
            },
            isLink: function isLink(mode) {
              return (mode & 61440) === 40960;
            },
            isChrdev: function isChrdev(mode) {
              return (mode & 61440) === 8192;
            },
            isBlkdev: function isBlkdev(mode) {
              return (mode & 61440) === 24576;
            },
            isFIFO: function isFIFO(mode) {
              return (mode & 61440) === 4096;
            },
            isSocket: function isSocket(mode) {
              return (mode & 49152) === 49152;
            },
            flagModes: {
              "r": 0,
              "r+": 2,
              "w": 577,
              "w+": 578,
              "a": 1089,
              "a+": 1090
            },
            modeStringToFlags: function modeStringToFlags(str) {
              var flags = FS.flagModes[str];

              if (typeof flags === "undefined") {
                throw new Error("Unknown file open mode: " + str);
              }

              return flags;
            },
            flagsToPermissionString: function flagsToPermissionString(flag) {
              var perms = ["r", "w", "rw"][flag & 3];

              if (flag & 512) {
                perms += "w";
              }

              return perms;
            },
            nodePermissions: function nodePermissions(node, perms) {
              if (FS.ignorePermissions) {
                return 0;
              }

              if (perms.indexOf("r") !== -1 && !(node.mode & 292)) {
                return 2;
              } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) {
                return 2;
              } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) {
                return 2;
              }

              return 0;
            },
            mayLookup: function mayLookup(dir) {
              var errCode = FS.nodePermissions(dir, "x");
              if (errCode) return errCode;
              if (!dir.node_ops.lookup) return 2;
              return 0;
            },
            mayCreate: function mayCreate(dir, name2) {
              try {
                var node = FS.lookupNode(dir, name2);
                return 20;
              } catch (e) {}

              return FS.nodePermissions(dir, "wx");
            },
            mayDelete: function mayDelete(dir, name2, isdir) {
              var node;

              try {
                node = FS.lookupNode(dir, name2);
              } 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: function 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: function nextfd(fd_start, fd_end) {
              fd_start = fd_start || 0;
              fd_end = fd_end || FS.MAX_OPEN_FDS;

              for (var fd = fd_start; fd <= fd_end; fd++) {
                if (!FS.streams[fd]) {
                  return fd;
                }
              }

              throw new FS.ErrnoError(33);
            },
            getStream: function getStream(fd) {
              return FS.streams[fd];
            },
            createStream: function createStream(stream, fd_start, fd_end) {
              if (!FS.FSStream) {
                FS.FSStream = function () {};

                FS.FSStream.prototype = {
                  object: {
                    get: function get() {
                      return this.node;
                    },
                    set: function set(val) {
                      this.node = val;
                    }
                  },
                  isRead: {
                    get: function get() {
                      return (this.flags & 2097155) !== 1;
                    }
                  },
                  isWrite: {
                    get: function get() {
                      return (this.flags & 2097155) !== 0;
                    }
                  },
                  isAppend: {
                    get: function get() {
                      return this.flags & 1024;
                    }
                  }
                };
              }

              var newStream = new FS.FSStream();

              for (var p in stream) {
                newStream[p] = stream[p];
              }

              stream = newStream;
              var fd = FS.nextfd(fd_start, fd_end);
              stream.fd = fd;
              FS.streams[fd] = stream;
              return stream;
            },
            closeStream: function closeStream(fd) {
              FS.streams[fd] = null;
            },
            chrdev_stream_ops: {
              open: function 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: function llseek() {
                throw new FS.ErrnoError(70);
              }
            },
            major: function major(dev) {
              return dev >> 8;
            },
            minor: function minor(dev) {
              return dev & 255;
            },
            makedev: function makedev(ma, mi) {
              return ma << 8 | mi;
            },
            registerDevice: function registerDevice(dev, ops) {
              FS.devices[dev] = {
                stream_ops: ops
              };
            },
            getDevice: function getDevice(dev) {
              return FS.devices[dev];
            },
            getMounts: function 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: function 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(function (mount) {
                if (!mount.type.syncfs) {
                  return done(null);
                }

                mount.type.syncfs(mount, populate, done);
              });
            },
            mount: function 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: type,
                opts: opts,
                mountpoint: 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: function 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(function (hash) {
                var current = FS.nameTable[hash];

                while (current) {
                  var next = current.name_next;

                  if (mounts.indexOf(current.mount) !== -1) {
                    FS.destroyNode(current);
                  }

                  current = next;
                }
              });
              node.mounted = null;
              var idx = node.mount.mounts.indexOf(mount);
              node.mount.mounts.splice(idx, 1);
            },
            lookup: function lookup(parent, name2) {
              return parent.node_ops.lookup(parent, name2);
            },
            mknod: function mknod(path, mode, dev) {
              var lookup = FS.lookupPath(path, {
                parent: true
              });
              var parent = lookup.node;
              var name2 = PATH.basename(path);

              if (!name2 || name2 === "." || name2 === "..") {
                throw new FS.ErrnoError(28);
              }

              var errCode = FS.mayCreate(parent, name2);

              if (errCode) {
                throw new FS.ErrnoError(errCode);
              }

              if (!parent.node_ops.mknod) {
                throw new FS.ErrnoError(63);
              }

              return parent.node_ops.mknod(parent, name2, mode, dev);
            },
            create: function create(path, mode) {
              mode = mode !== void 0 ? mode : 438;
              mode &= 4095;
              mode |= 32768;
              return FS.mknod(path, mode, 0);
            },
            mkdir: function mkdir(path, mode) {
              mode = mode !== void 0 ? mode : 511;
              mode &= 511 | 512;
              mode |= 16384;
              return FS.mknod(path, mode, 0);
            },
            mkdirTree: function 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: function mkdev(path, mode, dev) {
              if (typeof dev === "undefined") {
                dev = mode;
                mode = 438;
              }

              mode |= 8192;
              return FS.mknod(path, mode, dev);
            },
            symlink: function 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: function 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);
                }
              }

              try {
                if (FS.trackingDelegate["willMovePath"]) {
                  FS.trackingDelegate["willMovePath"](old_path, new_path);
                }
              } catch (e) {
                err("FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message);
              }

              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);
              }

              try {
                if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path);
              } catch (e) {
                err("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message);
              }
            },
            rmdir: function rmdir(path) {
              var lookup = FS.lookupPath(path, {
                parent: true
              });
              var parent = lookup.node;
              var name2 = PATH.basename(path);
              var node = FS.lookupNode(parent, name2);
              var errCode = FS.mayDelete(parent, name2, 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);
              }

              try {
                if (FS.trackingDelegate["willDeletePath"]) {
                  FS.trackingDelegate["willDeletePath"](path);
                }
              } catch (e) {
                err("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message);
              }

              parent.node_ops.rmdir(parent, name2);
              FS.destroyNode(node);

              try {
                if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path);
              } catch (e) {
                err("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message);
              }
            },
            readdir: function 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: function unlink(path) {
              var lookup = FS.lookupPath(path, {
                parent: true
              });
              var parent = lookup.node;
              var name2 = PATH.basename(path);
              var node = FS.lookupNode(parent, name2);
              var errCode = FS.mayDelete(parent, name2, 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);
              }

              try {
                if (FS.trackingDelegate["willDeletePath"]) {
                  FS.trackingDelegate["willDeletePath"](path);
                }
              } catch (e) {
                err("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message);
              }

              parent.node_ops.unlink(parent, name2);
              FS.destroyNode(node);

              try {
                if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path);
              } catch (e) {
                err("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message);
              }
            },
            readlink: function 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: function 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: function lstat(path) {
              return FS.stat(path, true);
            },
            chmod: function 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: function lchmod(path, mode) {
              FS.chmod(path, mode, true);
            },
            fchmod: function fchmod(fd, mode) {
              var stream = FS.getStream(fd);

              if (!stream) {
                throw new FS.ErrnoError(8);
              }

              FS.chmod(stream.node, mode);
            },
            chown: function 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: function lchown(path, uid, gid) {
              FS.chown(path, uid, gid, true);
            },
            fchown: function fchown(fd, uid, gid) {
              var stream = FS.getStream(fd);

              if (!stream) {
                throw new FS.ErrnoError(8);
              }

              FS.chown(stream.node, uid, gid);
            },
            truncate: function 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: function ftruncate(fd, len) {
              var stream = FS.getStream(fd);

              if (!stream) {
                throw new FS.ErrnoError(8);
              }

              if ((stream.flags & 2097155) === 0) {
                throw new FS.ErrnoError(28);
              }

              FS.truncate(stream.node, len);
            },
            utime: function 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: function open(path, flags, mode, fd_start, fd_end) {
              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) {
                FS.truncate(node, 0);
              }

              flags &= ~(128 | 512 | 131072);
              var stream = FS.createStream({
                node: node,
                path: FS.getPath(node),
                flags: flags,
                seekable: true,
                position: 0,
                stream_ops: node.stream_ops,
                ungotten: [],
                error: false
              }, fd_start, fd_end);

              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;
                  err("FS.trackingDelegate error on read file: " + path);
                }
              }

              try {
                if (FS.trackingDelegate["onOpenFile"]) {
                  var trackingFlags = 0;

                  if ((flags & 2097155) !== 1) {
                    trackingFlags |= FS.tracking.openFlags.READ;
                  }

                  if ((flags & 2097155) !== 0) {
                    trackingFlags |= FS.tracking.openFlags.WRITE;
                  }

                  FS.trackingDelegate["onOpenFile"](path, trackingFlags);
                }
              } catch (e) {
                err("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message);
              }

              return stream;
            },
            close: function 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: function isClosed(stream) {
              return stream.fd === null;
            },
            llseek: function 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: function read(stream, buffer2, offset, length, position) {
              offset >>>= 0;

              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, buffer2, offset, length, position);
              if (!seeking) stream.position += bytesRead;
              return bytesRead;
            },
            write: function write(stream, buffer2, offset, length, position, canOwn) {
              offset >>>= 0;

              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, buffer2, offset, length, position, canOwn);
              if (!seeking) stream.position += bytesWritten;

              try {
                if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path);
              } catch (e) {
                err("FS.trackingDelegate['onWriteToFile']('" + stream.path + "') threw an exception: " + e.message);
              }

              return bytesWritten;
            },
            allocate: function 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: function mmap(stream, address, length, position, prot, flags) {
              address >>>= 0;

              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, address, length, position, prot, flags);
            },
            msync: function msync(stream, buffer2, offset, length, mmapFlags) {
              offset >>>= 0;

              if (!stream || !stream.stream_ops.msync) {
                return 0;
              }

              return stream.stream_ops.msync(stream, buffer2, offset, length, mmapFlags);
            },
            munmap: function munmap(stream) {
              return 0;
            },
            ioctl: function ioctl(stream, cmd, arg) {
              if (!stream.stream_ops.ioctl) {
                throw new FS.ErrnoError(59);
              }

              return stream.stream_ops.ioctl(stream, cmd, arg);
            },
            readFile: function readFile(path, opts) {
              opts = 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: function writeFile(path, data, opts) {
              opts = 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: function cwd() {
              return FS.currentPath;
            },
            chdir: function 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: function createDefaultDirectories() {
              FS.mkdir("/tmp");
              FS.mkdir("/home");
              FS.mkdir("/home/web_user");
            },
            createDefaultDevices: function createDefaultDevices() {
              FS.mkdir("/dev");
              FS.registerDevice(FS.makedev(1, 3), {
                read: function read() {
                  return 0;
                },
                write: function write(stream, buffer2, offset, length, pos) {
                  return 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 random_device = getRandomDevice();
              FS.createDevice("/dev", "random", random_device);
              FS.createDevice("/dev", "urandom", random_device);
              FS.mkdir("/dev/shm");
              FS.mkdir("/dev/shm/tmp");
            },
            createSpecialDirectories: function createSpecialDirectories() {
              FS.mkdir("/proc");
              FS.mkdir("/proc/self");
              FS.mkdir("/proc/self/fd");
              FS.mount({
                mount: function mount() {
                  var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
                  node.node_ops = {
                    lookup: function lookup(parent, name2) {
                      var fd = +name2;
                      var stream = FS.getStream(fd);
                      if (!stream) throw new FS.ErrnoError(8);
                      var ret = {
                        parent: null,
                        mount: {
                          mountpoint: "fake"
                        },
                        node_ops: {
                          readlink: function readlink() {
                            return stream.path;
                          }
                        }
                      };
                      ret.parent = ret;
                      return ret;
                    }
                  };
                  return node;
                }
              }, {}, "/proc/self/fd");
            },
            createStandardStreams: function 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: function ensureErrnoError() {
              if (FS.ErrnoError) return;

              FS.ErrnoError = function ErrnoError(errno, node) {
                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(function (code) {
                FS.genericErrors[code] = new FS.ErrnoError(code);
                FS.genericErrors[code].stack = "<generic error, no stack>";
              });
            },
            staticInit: function staticInit() {
              FS.ensureErrnoError();
              FS.nameTable = new Array(4096);
              FS.mount(MEMFS, {}, "/");
              FS.createDefaultDirectories();
              FS.createDefaultDevices();
              FS.createSpecialDirectories();
              FS.filesystems = {
                "MEMFS": MEMFS
              };
            },
            init: function 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: function quit() {
              FS.init.initialized = false;
              var fflush = Module["_fflush"];
              if (fflush) fflush(0);

              for (var i = 0; i < FS.streams.length; i++) {
                var stream = FS.streams[i];

                if (!stream) {
                  continue;
                }

                FS.close(stream);
              }
            },
            getMode: function getMode(canRead, canWrite) {
              var mode = 0;
              if (canRead) mode |= 292 | 73;
              if (canWrite) mode |= 146;
              return mode;
            },
            findObject: function findObject(path, dontResolveLastLink) {
              var ret = FS.analyzePath(path, dontResolveLastLink);

              if (ret.exists) {
                return ret.object;
              } else {
                return null;
              }
            },
            analyzePath: function 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: function 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: function createFile(parent, name2, properties, canRead, canWrite) {
              var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name2);
              var mode = FS.getMode(canRead, canWrite);
              return FS.create(path, mode);
            },
            createDataFile: function createDataFile(parent, name2, data, canRead, canWrite, canOwn) {
              var path = name2 ? PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name2) : 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: function createDevice(parent, name2, input, output) {
              var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name2);
              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: function open(stream) {
                  stream.seekable = false;
                },
                close: function close(stream) {
                  if (output && output.buffer && output.buffer.length) {
                    output(10);
                  }
                },
                read: function read(stream, buffer2, 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++;
                    buffer2[offset + i] = result;
                  }

                  if (bytesRead) {
                    stream.node.timestamp = Date.now();
                  }

                  return bytesRead;
                },
                write: function write(stream, buffer2, offset, length, pos) {
                  for (var i = 0; i < length; i++) {
                    try {
                      output(buffer2[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: function 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: function createLazyFile(parent, name2, 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 = function 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);
                  if (typeof Uint8Array != "undefined") 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 || []);
                  } else {
                    return intArrayFromString(xhr2.responseText || "", true);
                  }
                };

                var lazyArray2 = this;
                lazyArray2.setDataGetter(function (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 get() {
                      if (!this.lengthKnown) {
                        this.cacheLength();
                      }

                      return this._length;
                    }
                  },
                  chunkSize: {
                    get: function get() {
                      if (!this.lengthKnown) {
                        this.cacheLength();
                      }

                      return this._chunkSize;
                    }
                  }
                });
                var properties = {
                  isDevice: false,
                  contents: lazyArray
                };
              } else {
                var properties = {
                  isDevice: false,
                  url: url
                };
              }

              var node = FS.createFile(parent, name2, 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 get() {
                    return this.contents.length;
                  }
                }
              });
              var stream_ops = {};
              var keys = Object.keys(node.stream_ops);
              keys.forEach(function (key2) {
                var fn = node.stream_ops[key2];

                stream_ops[key2] = function forceLoadLazyFile() {
                  FS.forceLoadFile(node);
                  return fn.apply(null, arguments);
                };
              });

              stream_ops.read = function stream_ops_read(stream, buffer2, offset, length, position) {
                FS.forceLoadFile(node);
                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++) {
                    buffer2[offset + i] = contents[position + i];
                  }
                } else {
                  for (var i = 0; i < size; i++) {
                    buffer2[offset + i] = contents.get(position + i);
                  }
                }

                return size;
              };

              node.stream_ops = stream_ops;
              return node;
            },
            createPreloadedFile: function createPreloadedFile(parent, name2, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
              Browser.init();
              var fullname = name2 ? PATH_FS.resolve(PATH.join2(parent, name2)) : parent;
              var dep = getUniqueRunDependency("cp " + fullname);

              function processData(byteArray) {
                function finish(byteArray2) {
                  if (preFinish) preFinish();

                  if (!dontCreateFile) {
                    FS.createDataFile(parent, name2, byteArray2, canRead, canWrite, canOwn);
                  }

                  if (onload) onload();
                  removeRunDependency(dep);
                }

                var handled = false;
                Module["preloadPlugins"].forEach(function (plugin) {
                  if (handled) return;

                  if (plugin["canHandle"](fullname)) {
                    plugin["handle"](byteArray, fullname, finish, function () {
                      if (onerror) onerror();
                      removeRunDependency(dep);
                    });
                    handled = true;
                  }
                });
                if (!handled) finish(byteArray);
              }

              addRunDependency(dep);

              if (typeof url == "string") {
                Browser.asyncLoad(url, function (byteArray) {
                  processData(byteArray);
                }, onerror);
              } else {
                processData(url);
              }
            },
            indexedDB: function indexedDB() {
              return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
            },
            DB_NAME: function DB_NAME() {
              return "EM_FS_" + window.location.pathname;
            },
            DB_VERSION: 20,
            DB_STORE_NAME: "FILE_DATA",
            saveFilesToDB: function saveFilesToDB(paths, onload, onerror) {
              onload = onload || function () {};

              onerror = onerror || function () {};

              var indexedDB = FS.indexedDB();

              try {
                var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
              } catch (e) {
                return onerror(e);
              }

              openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
                out("creating db");
                var db = openRequest.result;
                db.createObjectStore(FS.DB_STORE_NAME);
              };

              openRequest.onsuccess = function openRequest_onsuccess() {
                var db = openRequest.result;
                var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite");
                var files = transaction.objectStore(FS.DB_STORE_NAME);
                var ok = 0,
                    fail = 0,
                    total = paths.length;

                function finish() {
                  if (fail == 0) onload();else onerror();
                }

                paths.forEach(function (path) {
                  var putRequest = files.put(FS.analyzePath(path).object.contents, path);

                  putRequest.onsuccess = function putRequest_onsuccess() {
                    ok++;
                    if (ok + fail == total) finish();
                  };

                  putRequest.onerror = function putRequest_onerror() {
                    fail++;
                    if (ok + fail == total) finish();
                  };
                });
                transaction.onerror = onerror;
              };

              openRequest.onerror = onerror;
            },
            loadFilesFromDB: function loadFilesFromDB(paths, onload, onerror) {
              onload = onload || function () {};

              onerror = onerror || function () {};

              var indexedDB = FS.indexedDB();

              try {
                var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
              } catch (e) {
                return onerror(e);
              }

              openRequest.onupgradeneeded = onerror;

              openRequest.onsuccess = function openRequest_onsuccess() {
                var db = openRequest.result;

                try {
                  var transaction = db.transaction([FS.DB_STORE_NAME], "readonly");
                } catch (e) {
                  onerror(e);
                  return;
                }

                var files = transaction.objectStore(FS.DB_STORE_NAME);
                var ok = 0,
                    fail = 0,
                    total = paths.length;

                function finish() {
                  if (fail == 0) onload();else onerror();
                }

                paths.forEach(function (path) {
                  var getRequest = files.get(path);

                  getRequest.onsuccess = function getRequest_onsuccess() {
                    if (FS.analyzePath(path).exists) {
                      FS.unlink(path);
                    }

                    FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
                    ok++;
                    if (ok + fail == total) finish();
                  };

                  getRequest.onerror = function getRequest_onerror() {
                    fail++;
                    if (ok + fail == total) finish();
                  };
                });
                transaction.onerror = onerror;
              };

              openRequest.onerror = onerror;
            }
          };
          var SYSCALLS = {
            mappings: {},
            DEFAULT_POLLMASK: 5,
            umask: 511,
            calculateAt: function calculateAt(dirfd, path) {
              if (path[0] !== "/") {
                var dir;

                if (dirfd === -100) {
                  dir = FS.cwd();
                } else {
                  var dirstream = FS.getStream(dirfd);
                  if (!dirstream) throw new FS.ErrnoError(8);
                  dir = dirstream.path;
                }

                path = PATH.join2(dir, path);
              }

              return path;
            },
            doStat: function doStat(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] = 0;
              HEAP32[buf + 8 >>> 2] = stat.ino;
              HEAP32[buf + 12 >>> 2] = stat.mode;
              HEAP32[buf + 16 >>> 2] = stat.nlink;
              HEAP32[buf + 20 >>> 2] = stat.uid;
              HEAP32[buf + 24 >>> 2] = stat.gid;
              HEAP32[buf + 28 >>> 2] = stat.rdev;
              HEAP32[buf + 32 >>> 2] = 0;
              tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1];
              HEAP32[buf + 48 >>> 2] = 4096;
              HEAP32[buf + 52 >>> 2] = stat.blocks;
              HEAP32[buf + 56 >>> 2] = stat.atime.getTime() / 1e3 | 0;
              HEAP32[buf + 60 >>> 2] = 0;
              HEAP32[buf + 64 >>> 2] = stat.mtime.getTime() / 1e3 | 0;
              HEAP32[buf + 68 >>> 2] = 0;
              HEAP32[buf + 72 >>> 2] = stat.ctime.getTime() / 1e3 | 0;
              HEAP32[buf + 76 >>> 2] = 0;
              tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 80 >>> 2] = tempI64[0], HEAP32[buf + 84 >>> 2] = tempI64[1];
              return 0;
            },
            doMsync: function doMsync(addr, stream, len, flags, offset) {
              var buffer2 = HEAPU8.slice(addr, addr + len);
              FS.msync(stream, buffer2, offset, len, flags);
            },
            doMkdir: function doMkdir(path, mode) {
              path = PATH.normalize(path);
              if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1);
              FS.mkdir(path, mode, 0);
              return 0;
            },
            doMknod: function doMknod(path, mode, dev) {
              switch (mode & 61440) {
                case 32768:
                case 8192:
                case 24576:
                case 4096:
                case 49152:
                  break;

                default:
                  return -28;
              }

              FS.mknod(path, mode, dev);
              return 0;
            },
            doReadlink: function doReadlink(path, buf, bufsize) {
              if (bufsize <= 0) return -28;
              var ret = FS.readlink(path);
              var len = Math.min(bufsize, lengthBytesUTF8(ret));
              var endChar = HEAP8[buf + len >>> 0];
              stringToUTF8(ret, buf, bufsize + 1);
              HEAP8[buf + len >>> 0] = endChar;
              return len;
            },
            doAccess: function doAccess(path, amode) {
              if (amode & ~7) {
                return -28;
              }

              var node;
              var lookup = FS.lookupPath(path, {
                follow: true
              });
              node = lookup.node;

              if (!node) {
                return -44;
              }

              var perms = "";
              if (amode & 4) perms += "r";
              if (amode & 2) perms += "w";
              if (amode & 1) perms += "x";

              if (perms && FS.nodePermissions(node, perms)) {
                return -2;
              }

              return 0;
            },
            doDup: function doDup(path, flags, suggestFD) {
              var suggest = FS.getStream(suggestFD);
              if (suggest) FS.close(suggest);
              return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
            },
            doReadv: function doReadv(stream, iov, iovcnt, offset) {
              var ret = 0;

              for (var i = 0; i < iovcnt; i++) {
                var ptr = HEAP32[iov + i * 8 >>> 2];
                var len = HEAP32[iov + (i * 8 + 4) >>> 2];
                var curr = FS.read(stream, HEAP8, ptr, len, offset);
                if (curr < 0) return -1;
                ret += curr;
                if (curr < len) break;
              }

              return ret;
            },
            doWritev: function doWritev(stream, iov, iovcnt, offset) {
              var ret = 0;

              for (var i = 0; i < iovcnt; i++) {
                var ptr = HEAP32[iov + i * 8 >>> 2];
                var len = HEAP32[iov + (i * 8 + 4) >>> 2];
                var curr = FS.write(stream, HEAP8, ptr, len, offset);
                if (curr < 0) return -1;
                ret += curr;
              }

              return ret;
            },
            varargs: void 0,
            get: function get() {
              SYSCALLS.varargs += 4;
              var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2];
              return ret;
            },
            getStr: function getStr(ptr) {
              var ret = UTF8ToString(ptr);
              return ret;
            },
            getStreamFromFD: function getStreamFromFD(fd) {
              var stream = FS.getStream(fd);
              if (!stream) throw new FS.ErrnoError(8);
              return stream;
            },
            get64: function get64(low, high) {
              return low;
            }
          };

          function ___sys_fcntl64(fd, cmd, varargs) {
            SYSCALLS.varargs = varargs;

            try {
              var stream = SYSCALLS.getStreamFromFD(fd);

              switch (cmd) {
                case 0:
                  {
                    var arg = SYSCALLS.get();

                    if (arg < 0) {
                      return -28;
                    }

                    var newStream;
                    newStream = FS.open(stream.path, stream.flags, 0, arg);
                    return newStream.fd;
                  }

                case 1:
                case 2:
                  return 0;

                case 3:
                  return stream.flags;

                case 4:
                  {
                    var arg = SYSCALLS.get();
                    stream.flags |= arg;
                    return 0;
                  }

                case 12:
                  {
                    var arg = SYSCALLS.get();
                    var offset = 0;
                    HEAP16[arg + offset >>> 1] = 2;
                    return 0;
                  }

                case 13:
                case 14:
                  return 0;

                case 16:
                case 8:
                  return -28;

                case 9:
                  setErrNo(28);
                  return -1;

                default:
                  {
                    return -28;
                  }
              }
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return -e.errno;
            }
          }

          function ___sys_ioctl(fd, op, varargs) {
            SYSCALLS.varargs = varargs;

            try {
              var stream = SYSCALLS.getStreamFromFD(fd);

              switch (op) {
                case 21509:
                case 21505:
                  {
                    if (!stream.tty) return -59;
                    return 0;
                  }

                case 21510:
                case 21511:
                case 21512:
                case 21506:
                case 21507:
                case 21508:
                  {
                    if (!stream.tty) return -59;
                    return 0;
                  }

                case 21519:
                  {
                    if (!stream.tty) return -59;
                    var argp = SYSCALLS.get();
                    HEAP32[argp >>> 2] = 0;
                    return 0;
                  }

                case 21520:
                  {
                    if (!stream.tty) return -59;
                    return -28;
                  }

                case 21531:
                  {
                    var argp = SYSCALLS.get();
                    return FS.ioctl(stream, op, argp);
                  }

                case 21523:
                  {
                    if (!stream.tty) return -59;
                    return 0;
                  }

                case 21524:
                  {
                    if (!stream.tty) return -59;
                    return 0;
                  }

                default:
                  abort("bad ioctl syscall " + op);
              }
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return -e.errno;
            }
          }

          function ___sys_open(path, flags, varargs) {
            SYSCALLS.varargs = varargs;

            try {
              var pathname = SYSCALLS.getStr(path);
              var mode = SYSCALLS.get();
              var stream = FS.open(pathname, flags, mode);
              return stream.fd;
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return -e.errno;
            }
          }

          var tupleRegistrations = {};

          function runDestructors(destructors) {
            while (destructors.length) {
              var ptr = destructors.pop();
              var del = destructors.pop();
              del(ptr);
            }
          }

          function simpleReadValueFromPointer(pointer) {
            return this["fromWireType"](HEAPU32[pointer >>> 2]);
          }

          var awaitingDependencies = {};
          var registeredTypes = {};
          var typeDependencies = {};
          var char_0 = 48;
          var char_9 = 57;

          function makeLegalFunctionName(name2) {
            if (name2 === void 0) {
              return "_unknown";
            }

            name2 = name2.replace(/[^a-zA-Z0-9_]/g, "$");
            var f = name2.charCodeAt(0);

            if (f >= char_0 && f <= char_9) {
              return "_" + name2;
            } else {
              return name2;
            }
          }

          function createNamedFunction(name2, body) {
            name2 = makeLegalFunctionName(name2);
            return new Function("body", "return function " + name2 + '() {\n    "use strict";    return body.apply(this, arguments);\n};\n')(body);
          }

          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 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(function (dt, i) {
              if (registeredTypes.hasOwnProperty(dt)) {
                typeConverters[i] = registeredTypes[dt];
              } else {
                unregisteredTypes.push(dt);

                if (!awaitingDependencies.hasOwnProperty(dt)) {
                  awaitingDependencies[dt] = [];
                }

                awaitingDependencies[dt].push(function () {
                  typeConverters[i] = registeredTypes[dt];
                  ++registered;

                  if (registered === unregisteredTypes.length) {
                    onComplete(typeConverters);
                  }
                });
              }
            });

            if (unregisteredTypes.length === 0) {
              onComplete(typeConverters);
            }
          }

          function __embind_finalize_value_array(rawTupleType) {
            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(function (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 = function (ptr) {
                  return getterReturnType["fromWireType"](getter(getterContext, ptr));
                };

                elt.write = function (ptr, o) {
                  var destructors = [];
                  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
                  runDestructors(destructors);
                };
              });
              return [{
                name: reg.name,
                "fromWireType": function fromWireType(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 toWireType(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 = {};

          function __embind_finalize_value_object(structType) {
            var reg = structRegistrations[structType];
            delete structRegistrations[structType];
            var rawConstructor = reg.rawConstructor;
            var rawDestructor = reg.rawDestructor;
            var fieldRecords = reg.fields;
            var fieldTypes = fieldRecords.map(function (field) {
              return field.getterReturnType;
            }).concat(fieldRecords.map(function (field) {
              return field.setterArgumentType;
            }));
            whenDependentTypesAreResolved([structType], fieldTypes, function (fieldTypes2) {
              var fields = {};
              fieldRecords.forEach(function (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: function read(ptr) {
                    return getterReturnType["fromWireType"](getter(getterContext, ptr));
                  },
                  write: function write(ptr, o) {
                    var destructors = [];
                    setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
                    runDestructors(destructors);
                  }
                };
              });
              return [{
                name: reg.name,
                "fromWireType": function fromWireType(ptr) {
                  var rv = {};

                  for (var i in fields) {
                    rv[i] = fields[i].read(ptr);
                  }

                  rawDestructor(ptr);
                  return rv;
                },
                "toWireType": function toWireType(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 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 registerType(rawType, registeredInstance, options) {
            options = options || {};

            if (!("argPackAdvance" in registeredInstance)) {
              throw new TypeError("registerType registeredInstance requires argPackAdvance");
            }

            var name2 = registeredInstance.name;

            if (!rawType) {
              throwBindingError('type "' + name2 + '" must have a positive integer typeid pointer');
            }

            if (registeredTypes.hasOwnProperty(rawType)) {
              if (options.ignoreDuplicateRegistrations) {
                return;
              } else {
                throwBindingError("Cannot register type '" + name2 + "' twice");
              }
            }

            registeredTypes[rawType] = registeredInstance;
            delete typeDependencies[rawType];

            if (awaitingDependencies.hasOwnProperty(rawType)) {
              var callbacks = awaitingDependencies[rawType];
              delete awaitingDependencies[rawType];
              callbacks.forEach(function (cb) {
                cb();
              });
            }
          }

          function __embind_register_bool(rawType, name2, size, trueValue, falseValue) {
            var shift = getShiftFromSize(size);
            name2 = readLatin1String(name2);
            registerType(rawType, {
              name: name2,
              "fromWireType": function fromWireType(wt) {
                return !!wt;
              },
              "toWireType": function toWireType(destructors, o) {
                return o ? trueValue : falseValue;
              },
              "argPackAdvance": 8,
              "readValueFromPointer": function readValueFromPointer(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: " + name2);
                }

                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 finalizationGroup = 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 attachFinalizer(handle) {
            if (typeof FinalizationGroup === "undefined") {
              attachFinalizer = function attachFinalizer(handle2) {
                return handle2;
              };

              return handle;
            }

            finalizationGroup = new FinalizationGroup(function (iter) {
              for (var result = iter.next(); !result.done; result = iter.next()) {
                var $$ = result.value;

                if (!$$.ptr) {
                  console.warn("object already deleted: " + $$.ptr);
                } else {
                  releaseClassHandle($$);
                }
              }
            });

            attachFinalizer = function attachFinalizer(handle2) {
              finalizationGroup.register(handle2, handle2.$$, handle2.$$);
              return handle2;
            };

            detachFinalizer = function detachFinalizer(handle2) {
              finalizationGroup.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;
          }

          var delayFunction = void 0;
          var deletionQueue = [];

          function flushPendingDeletes() {
            while (deletionQueue.length) {
              var obj = deletionQueue.pop();
              obj.$$.deleteScheduled = false;
              obj["delete"]();
            }
          }

          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 registeredPointers = {};

          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(name2, value, numArguments) {
            if (Module.hasOwnProperty(name2)) {
              if (numArguments === void 0 || Module[name2].overloadTable !== void 0 && Module[name2].overloadTable[numArguments] !== void 0) {
                throwBindingError("Cannot register public name '" + name2 + "' twice");
              }

              ensureOverloadTable(Module, name2, name2);

              if (Module.hasOwnProperty(numArguments)) {
                throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!");
              }

              Module[name2].overloadTable[numArguments] = value;
            } else {
              Module[name2] = value;

              if (numArguments !== void 0) {
                Module[name2].numArguments = numArguments;
              }
            }
          }

          function RegisteredClass(name2, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {
            this.name = name2;
            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 "' + _embind_repr(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 "' + _embind_repr(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_register(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 "' + _embind_repr(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 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);
          }

          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;
          }

          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: 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
              });
            }
          }

          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(name2, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {
            this.name = name2;
            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(name2, value, numArguments) {
            if (!Module.hasOwnProperty(name2)) {
              throwInternalError("Replacing nonexistant public symbol");
            }

            if (Module[name2].overloadTable !== void 0 && numArguments !== void 0) {
              Module[name2].overloadTable[numArguments] = value;
            } else {
              Module[name2] = value;
              Module[name2].argCount = numArguments;
            }
          }

          function getDynCaller(sig, ptr) {
            assert(sig.indexOf("j") >= 0, "getDynCaller should only be called with i64 sigs");
            var argCache = [];
            return function () {
              argCache.length = arguments.length;

              for (var i = 0; i < arguments.length; i++) {
                argCache[i] = arguments[i];
              }

              return dynCall(sig, ptr, argCache);
            };
          }

          function embind__requireFunction(signature, rawFunction) {
            signature = readLatin1String(signature);

            function makeDynCaller() {
              if (signature.indexOf("j") != -1) {
                return getDynCaller(signature, rawFunction);
              }

              return wasmTable.get(rawFunction);
            }

            var fp = makeDynCaller();

            if (typeof fp !== "function") {
              throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction);
            }

            return fp;
          }

          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, name2, destructorSignature, rawDestructor) {
            name2 = readLatin1String(name2);
            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(name2);
            exposePublicSymbol(legalFunctionName, function () {
              throwUnboundTypeError("Cannot construct " + name2 + " 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 " + name2);
                }

                if (registeredClass.constructor_body === void 0) {
                  throw new BindingError(name2 + " has no accessible constructor");
                }

                var body = registeredClass.constructor_body[arguments.length];

                if (body === void 0) {
                  throw new BindingError("Tried to invoke ctor of " + name2 + " 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(name2, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
              var referenceConverter = new RegisteredPointer(name2, registeredClass, true, false, false);
              var pointerConverter = new RegisteredPointer(name2 + "*", registeredClass, false, false, false);
              var constPointerConverter = new RegisteredPointer(name2 + " 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(HEAP32[(firstElement >> 2) + i >>> 0]);
            }

            return array;
          }

          function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
            assert(argCount > 0);
            var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
            invoker = embind__requireFunction(invokerSignature, invoker);
            var args = [rawConstructor];
            var destructors = [];
            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] = function unboundTypeHandler() {
                throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes);
              };

              whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {
                classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() {
                  if (arguments.length !== argCount - 1) {
                    throwBindingError(humanName + " called with " + arguments.length + " arguments, expected " + (argCount - 1));
                  }

                  destructors.length = 0;
                  args.length = argCount;

                  for (var i = 1; i < argCount; ++i) {
                    args[i] = argTypes[i]["toWireType"](destructors, arguments[i - 1]);
                  }

                  var ptr = invoker.apply(null, args);
                  runDestructors(destructors);
                  return argTypes[0]["fromWireType"](ptr);
                };

                return [];
              });
              return [];
            });
          }

          function new_(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) {
            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 + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n";

            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 ? "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);
            var invokerFunction = new_(Function, args1).apply(null, args2);
            return invokerFunction;
          }

          function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) {
            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 (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);

                if (proto[methodName].overloadTable === void 0) {
                  memberFunction.argCount = argCount - 2;
                  proto[methodName] = memberFunction;
                } else {
                  proto[methodName].overloadTable[argCount - 2] = memberFunction;
                }

                return [];
              });
              return [];
            });
          }

          var emval_free_list = [];
          var emval_handle_array = [{}, {
            value: void 0
          }, {
            value: null
          }, {
            value: true
          }, {
            value: false
          }];

          function __emval_decref(handle) {
            if (handle > 4 && --emval_handle_array[handle].refcount === 0) {
              emval_handle_array[handle] = void 0;
              emval_free_list.push(handle);
            }
          }

          function count_emval_handles() {
            var count = 0;

            for (var i = 5; i < emval_handle_array.length; ++i) {
              if (emval_handle_array[i] !== void 0) {
                ++count;
              }
            }

            return count;
          }

          function get_first_emval() {
            for (var i = 5; i < emval_handle_array.length; ++i) {
              if (emval_handle_array[i] !== void 0) {
                return emval_handle_array[i];
              }
            }

            return null;
          }

          function init_emval() {
            Module["count_emval_handles"] = count_emval_handles;
            Module["get_first_emval"] = get_first_emval;
          }

          function __emval_register(value) {
            switch (value) {
              case void 0:
                {
                  return 1;
                }

              case null:
                {
                  return 2;
                }

              case true:
                {
                  return 3;
                }

              case false:
                {
                  return 4;
                }

              default:
                {
                  var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length;
                  emval_handle_array[handle] = {
                    refcount: 1,
                    value: value
                  };
                  return handle;
                }
            }
          }

          function __embind_register_emval(rawType, name2) {
            name2 = readLatin1String(name2);
            registerType(rawType, {
              name: name2,
              "fromWireType": function fromWireType(handle) {
                var rv = emval_handle_array[handle].value;

                __emval_decref(handle);

                return rv;
              },
              "toWireType": function toWireType(destructors, value) {
                return __emval_register(value);
              },
              "argPackAdvance": 8,
              "readValueFromPointer": simpleReadValueFromPointer,
              destructorFunction: null
            });
          }

          function _embind_repr(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(name2, 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: " + name2);
            }
          }

          function __embind_register_float(rawType, name2, size) {
            var shift = getShiftFromSize(size);
            name2 = readLatin1String(name2);
            registerType(rawType, {
              name: name2,
              "fromWireType": function fromWireType(value) {
                return value;
              },
              "toWireType": function toWireType(destructors, value) {
                if (typeof value !== "number" && typeof value !== "boolean") {
                  throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
                }

                return value;
              },
              "argPackAdvance": 8,
              "readValueFromPointer": floatReadValueFromPointer(name2, shift),
              destructorFunction: null
            });
          }

          function __embind_register_function(name2, argCount, rawArgTypesAddr, signature, rawInvoker, fn) {
            var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
            name2 = readLatin1String(name2);
            rawInvoker = embind__requireFunction(signature, rawInvoker);
            exposePublicSymbol(name2, function () {
              throwUnboundTypeError("Cannot call " + name2 + " due to unbound types", argTypes);
            }, argCount - 1);
            whenDependentTypesAreResolved([], argTypes, function (argTypes2) {
              var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));
              replacePublicSymbol(name2, craftInvokerFunction(name2, invokerArgsArray, null, rawInvoker, fn), argCount - 1);
              return [];
            });
          }

          function integerReadValueFromPointer(name2, 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: " + name2);
            }
          }

          function __embind_register_integer(primitiveType, name2, size, minRange, maxRange) {
            name2 = readLatin1String(name2);

            if (maxRange === -1) {
              maxRange = 4294967295;
            }

            var shift = getShiftFromSize(size);

            var fromWireType = function fromWireType(value) {
              return value;
            };

            if (minRange === 0) {
              var bitshift = 32 - 8 * size;

              fromWireType = function fromWireType(value) {
                return value << bitshift >>> bitshift;
              };
            }

            var isUnsignedType = name2.indexOf("unsigned") != -1;
            registerType(primitiveType, {
              name: name2,
              "fromWireType": fromWireType,
              "toWireType": function toWireType(destructors, value) {
                if (typeof value !== "number" && typeof value !== "boolean") {
                  throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
                }

                if (value < minRange || value > maxRange) {
                  throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name2 + '", which is outside the valid range [' + minRange + ", " + maxRange + "]!");
                }

                return isUnsignedType ? value >>> 0 : value | 0;
              },
              "argPackAdvance": 8,
              "readValueFromPointer": integerReadValueFromPointer(name2, shift, minRange !== 0),
              destructorFunction: null
            });
          }

          function __embind_register_memory_view(rawType, dataTypeIndex, name2) {
            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(buffer, data, size);
            }

            name2 = readLatin1String(name2);
            registerType(rawType, {
              name: name2,
              "fromWireType": decodeMemoryView,
              "argPackAdvance": 8,
              "readValueFromPointer": decodeMemoryView
            }, {
              ignoreDuplicateRegistrations: true
            });
          }

          function __embind_register_std_string(rawType, name2) {
            name2 = readLatin1String(name2);
            var stdStringIsUTF8 = name2 === "std::string";
            registerType(rawType, {
              name: name2,
              "fromWireType": function fromWireType(value) {
                var length = HEAPU32[value >>> 2];
                var str;

                if (stdStringIsUTF8) {
                  var decodeStartPtr = value + 4;

                  for (var i = 0; i <= length; ++i) {
                    var currentBytePtr = value + 4 + 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[value + 4 + i >>> 0]);
                  }

                  str = a.join("");
                }

                _free(value);

                return str;
              },
              "toWireType": function toWireType(destructors, value) {
                if (value instanceof ArrayBuffer) {
                  value = new Uint8Array(value);
                }

                var getLength;
                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) {
                  getLength = function getLength() {
                    return lengthBytesUTF8(value);
                  };
                } else {
                  getLength = function getLength() {
                    return value.length;
                  };
                }

                var length = getLength();

                var ptr = _malloc(4 + length + 1);

                ptr >>>= 0;
                HEAPU32[ptr >>> 2] = length;

                if (stdStringIsUTF8 && valueIsOfTypeString) {
                  stringToUTF8(value, ptr + 4, 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 + 4 + i >>> 0] = charCode;
                    }
                  } else {
                    for (var i = 0; i < length; ++i) {
                      HEAPU8[ptr + 4 + i >>> 0] = value[i];
                    }
                  }
                }

                if (destructors !== null) {
                  destructors.push(_free, ptr);
                }

                return ptr;
              },
              "argPackAdvance": 8,
              "readValueFromPointer": simpleReadValueFromPointer,
              destructorFunction: function destructorFunction(ptr) {
                _free(ptr);
              }
            });
          }

          function __embind_register_std_wstring(rawType, charSize, name2) {
            name2 = readLatin1String(name2);
            var decodeString, encodeString, getHeap, lengthBytesUTF, shift;

            if (charSize === 2) {
              decodeString = UTF16ToString;
              encodeString = stringToUTF16;
              lengthBytesUTF = lengthBytesUTF16;

              getHeap = function getHeap() {
                return HEAPU16;
              };

              shift = 1;
            } else if (charSize === 4) {
              decodeString = UTF32ToString;
              encodeString = stringToUTF32;
              lengthBytesUTF = lengthBytesUTF32;

              getHeap = function getHeap() {
                return HEAPU32;
              };

              shift = 2;
            }

            registerType(rawType, {
              name: name2,
              "fromWireType": function fromWireType(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 toWireType(destructors, value) {
                if (!(typeof value === "string")) {
                  throwBindingError("Cannot pass non-string to C++ string type " + name2);
                }

                var length = lengthBytesUTF(value);

                var ptr = _malloc(4 + length + charSize);

                ptr >>>= 0;
                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 destructorFunction(ptr) {
                _free(ptr);
              }
            });
          }

          function __embind_register_value_array(rawType, name2, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
            tupleRegistrations[rawType] = {
              name: readLatin1String(name2),
              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) {
            tupleRegistrations[rawTupleType].elements.push({
              getterReturnType: getterReturnType,
              getter: embind__requireFunction(getterSignature, getter),
              getterContext: getterContext,
              setterArgumentType: setterArgumentType,
              setter: embind__requireFunction(setterSignature, setter),
              setterContext: setterContext
            });
          }

          function __embind_register_value_object(rawType, name2, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
            structRegistrations[rawType] = {
              name: readLatin1String(name2),
              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) {
            structRegistrations[structType].fields.push({
              fieldName: readLatin1String(fieldName),
              getterReturnType: getterReturnType,
              getter: embind__requireFunction(getterSignature, getter),
              getterContext: getterContext,
              setterArgumentType: setterArgumentType,
              setter: embind__requireFunction(setterSignature, setter),
              setterContext: setterContext
            });
          }

          function __embind_register_void(rawType, name2) {
            name2 = readLatin1String(name2);
            registerType(rawType, {
              isVoid: true,
              name: name2,
              "argPackAdvance": 0,
              "fromWireType": function fromWireType() {
                return void 0;
              },
              "toWireType": function toWireType(destructors, o) {
                return void 0;
              }
            });
          }

          function requireHandle(handle) {
            if (!handle) {
              throwBindingError("Cannot use deleted val. handle = " + handle);
            }

            return emval_handle_array[handle].value;
          }

          function requireRegisteredType(rawType, humanName) {
            var impl = registeredTypes[rawType];

            if (impl === void 0) {
              throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
            }

            return impl;
          }

          function __emval_as(handle, returnType, destructorsRef) {
            handle = requireHandle(handle);
            returnType = requireRegisteredType(returnType, "emval::as");
            var destructors = [];

            var rd = __emval_register(destructors);

            HEAP32[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(HEAP32[(argTypes >> 2) + i >>> 0], "parameter " + i);
            }

            return a;
          }

          function __emval_call(handle, argCount, argTypes, argv) {
            handle = requireHandle(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_register(rv);
          }

          var emval_symbols = {};

          function getStringOrSymbol(address) {
            var symbol = emval_symbols[address];

            if (symbol === void 0) {
              return readLatin1String(address);
            } else {
              return symbol;
            }
          }

          function emval_get_global() {
            if (typeof globalThis === "object") {
              return globalThis;
            }

            return function () {
              return Function;
            }()("return this")();
          }

          function __emval_get_global(name2) {
            if (name2 === 0) {
              return __emval_register(emval_get_global());
            } else {
              name2 = getStringOrSymbol(name2);
              return __emval_register(emval_get_global()[name2]);
            }
          }

          function __emval_get_property(handle, key2) {
            handle = requireHandle(handle);
            key2 = requireHandle(key2);
            return __emval_register(handle[key2]);
          }

          function __emval_incref(handle) {
            if (handle > 4) {
              emval_handle_array[handle].refcount += 1;
            }
          }

          function __emval_instanceof(object, constructor) {
            object = requireHandle(object);
            constructor = requireHandle(constructor);
            return object instanceof constructor;
          }

          function __emval_is_number(handle) {
            handle = requireHandle(handle);
            return typeof handle === "number";
          }

          function __emval_new_array() {
            return __emval_register([]);
          }

          function __emval_new_cstring(v) {
            return __emval_register(getStringOrSymbol(v));
          }

          function __emval_new_object() {
            return __emval_register({});
          }

          function __emval_run_destructors(handle) {
            var destructors = emval_handle_array[handle].value;
            runDestructors(destructors);

            __emval_decref(handle);
          }

          function __emval_set_property(handle, key2, value) {
            handle = requireHandle(handle);
            key2 = requireHandle(key2);
            value = requireHandle(value);
            handle[key2] = value;
          }

          function __emval_take_value(type, argv) {
            type = requireRegisteredType(type, "_emval_take_value");
            var v = type["readValueFromPointer"](argv);
            return __emval_register(v);
          }

          function _abort() {
            abort();
          }

          var _emscripten_get_now;

          if (ENVIRONMENT_IS_NODE) {
            _emscripten_get_now = function _emscripten_get_now() {
              var t = process["hrtime"]();
              return t[0] * 1e3 + t[1] / 1e6;
            };
          } else if (typeof dateNow !== "undefined") {
            _emscripten_get_now = dateNow;
          } else _emscripten_get_now = function _emscripten_get_now() {
            return performance.now();
          };

          var _emscripten_get_now_is_monotonic = true;

          function _clock_gettime(clk_id, tp) {
            var now;

            if (clk_id === 0) {
              now = Date.now();
            } else if ((clk_id === 1 || clk_id === 4) && _emscripten_get_now_is_monotonic) {
              now = _emscripten_get_now();
            } else {
              setErrNo(28);
              return -1;
            }

            HEAP32[tp >>> 2] = now / 1e3 | 0;
            HEAP32[tp + 4 >>> 2] = now % 1e3 * 1e3 * 1e3 | 0;
            return 0;
          }

          function _emscripten_memcpy_big(dest, src, num) {
            HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0);
          }

          function _emscripten_get_heap_size() {
            return HEAPU8.length;
          }

          function emscripten_realloc_buffer(size) {
            try {
              wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
              updateGlobalBufferAndViews(wasmMemory.buffer);
              return 1;
            } catch (e) {}
          }

          function _emscripten_resize_heap(requestedSize) {
            requestedSize = requestedSize >>> 0;

            var oldSize = _emscripten_get_heap_size();

            var maxHeapSize = 4294967296;

            if (requestedSize > maxHeapSize) {
              return false;
            }

            var minHeapSize = 16777216;

            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(minHeapSize, requestedSize, overGrownHeapSize), 65536));
              var replacement = emscripten_realloc_buffer(newSize);

              if (replacement) {
                return true;
              }
            }

            return false;
          }

          var ENV = {};

          function getExecutableName() {
            return thisProgram || "./this.program";
          }

          function 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) {
                env[x] = ENV[x];
              }

              var strings = [];

              for (var x in env) {
                strings.push(x + "=" + env[x]);
              }

              getEnvStrings.strings = strings;
            }

            return getEnvStrings.strings;
          }

          function _environ_get(__environ, environ_buf) {
            try {
              var bufSize = 0;
              getEnvStrings().forEach(function (string, i) {
                var ptr = environ_buf + bufSize;
                HEAP32[__environ + i * 4 >>> 2] = ptr;
                writeAsciiToMemory(string, ptr);
                bufSize += string.length + 1;
              });
              return 0;
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return e.errno;
            }
          }

          function _environ_sizes_get(penviron_count, penviron_buf_size) {
            try {
              var strings = getEnvStrings();
              HEAP32[penviron_count >>> 2] = strings.length;
              var bufSize = 0;
              strings.forEach(function (string) {
                bufSize += string.length + 1;
              });
              HEAP32[penviron_buf_size >>> 2] = bufSize;
              return 0;
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return e.errno;
            }
          }

          function _fd_close(fd) {
            try {
              var stream = SYSCALLS.getStreamFromFD(fd);
              FS.close(stream);
              return 0;
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return e.errno;
            }
          }

          function _fd_read(fd, iov, iovcnt, pnum) {
            try {
              var stream = SYSCALLS.getStreamFromFD(fd);
              var num = SYSCALLS.doReadv(stream, iov, iovcnt);
              HEAP32[pnum >>> 2] = num;
              return 0;
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return e.errno;
            }
          }

          function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
            try {
              var stream = SYSCALLS.getStreamFromFD(fd);
              var HIGH_OFFSET = 4294967296;
              var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);
              var DOUBLE_LIMIT = 9007199254740992;

              if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {
                return -61;
              }

              FS.llseek(stream, offset, whence);
              tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 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 instanceof FS.ErrnoError)) abort(e);
              return e.errno;
            }
          }

          function _fd_write(fd, iov, iovcnt, pnum) {
            try {
              var stream = SYSCALLS.getStreamFromFD(fd);
              var num = SYSCALLS.doWritev(stream, iov, iovcnt);
              HEAP32[pnum >>> 2] = num;
              return 0;
            } catch (e) {
              if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
              return e.errno;
            }
          }

          function _setTempRet0($i) {
            setTempRet0($i | 0);
          }

          function __isLeapYear(year) {
            return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
          }

          function __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];

          function __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;
          }

          function _strftime(s, maxsize, format, tm) {
            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;
                } else {
                  return thisDate.getFullYear();
                }
              } else {
                return thisDate.getFullYear() - 1;
              }
            }

            var EXPANSION_RULES_2 = {
              "%a": function a(date2) {
                return WEEKDAYS[date2.tm_wday].substring(0, 3);
              },
              "%A": function A(date2) {
                return WEEKDAYS[date2.tm_wday];
              },
              "%b": function b(date2) {
                return MONTHS[date2.tm_mon].substring(0, 3);
              },
              "%B": function B(date2) {
                return MONTHS[date2.tm_mon];
              },
              "%C": function C(date2) {
                var year = date2.tm_year + 1900;
                return leadingNulls(year / 100 | 0, 2);
              },
              "%d": function d(date2) {
                return leadingNulls(date2.tm_mday, 2);
              },
              "%e": function e(date2) {
                return leadingSomething(date2.tm_mday, 2, " ");
              },
              "%g": function g(date2) {
                return getWeekBasedYear(date2).toString().substring(2);
              },
              "%G": function G(date2) {
                return getWeekBasedYear(date2);
              },
              "%H": function H(date2) {
                return leadingNulls(date2.tm_hour, 2);
              },
              "%I": function I(date2) {
                var twelveHour = date2.tm_hour;
                if (twelveHour == 0) twelveHour = 12;else if (twelveHour > 12) twelveHour -= 12;
                return leadingNulls(twelveHour, 2);
              },
              "%j": function j(date2) {
                return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3);
              },
              "%m": function m(date2) {
                return leadingNulls(date2.tm_mon + 1, 2);
              },
              "%M": function M(date2) {
                return leadingNulls(date2.tm_min, 2);
              },
              "%n": function n() {
                return "\n";
              },
              "%p": function p(date2) {
                if (date2.tm_hour >= 0 && date2.tm_hour < 12) {
                  return "AM";
                } else {
                  return "PM";
                }
              },
              "%S": function S(date2) {
                return leadingNulls(date2.tm_sec, 2);
              },
              "%t": function t() {
                return "	";
              },
              "%u": function u(date2) {
                return date2.tm_wday || 7;
              },
              "%U": function U(date2) {
                var janFirst = new Date(date2.tm_year + 1900, 0, 1);
                var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay());
                var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.tm_mday);

                if (compareByDay(firstSunday, endDate) < 0) {
                  var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;
                  var firstSundayUntilEndJanuary = 31 - firstSunday.getDate();
                  var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();
                  return leadingNulls(Math.ceil(days / 7), 2);
                }

                return compareByDay(firstSunday, janFirst) === 0 ? "01" : "00";
              },
              "%V": function V(date2) {
                var janFourthThisYear = new Date(date2.tm_year + 1900, 0, 4);
                var janFourthNextYear = new Date(date2.tm_year + 1901, 0, 4);
                var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
                var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);

                var endDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);

                if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
                  return "53";
                }

                if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
                  return "01";
                }

                var daysDifference;

                if (firstWeekStartThisYear.getFullYear() < date2.tm_year + 1900) {
                  daysDifference = date2.tm_yday + 32 - firstWeekStartThisYear.getDate();
                } else {
                  daysDifference = date2.tm_yday + 1 - firstWeekStartThisYear.getDate();
                }

                return leadingNulls(Math.ceil(daysDifference / 7), 2);
              },
              "%w": function w(date2) {
                return date2.tm_wday;
              },
              "%W": function W(date2) {
                var janFirst = new Date(date2.tm_year, 0, 1);
                var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1);
                var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.tm_mday);

                if (compareByDay(firstMonday, endDate) < 0) {
                  var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;
                  var firstMondayUntilEndJanuary = 31 - firstMonday.getDate();
                  var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();
                  return leadingNulls(Math.ceil(days / 7), 2);
                }

                return compareByDay(firstMonday, janFirst) === 0 ? "01" : "00";
              },
              "%y": function y(date2) {
                return (date2.tm_year + 1900).toString().substring(2);
              },
              "%Y": function Y(date2) {
                return date2.tm_year + 1900;
              },
              "%z": function 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": function Z(date2) {
                return date2.tm_zone;
              },
              "%%": function _() {
                return "%";
              }
            };

            for (var rule in EXPANSION_RULES_2) {
              if (pattern.indexOf(rule) >= 0) {
                pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date));
              }
            }

            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) {
            return _strftime(s, maxsize, format, tm);
          }

          var FSNode = function FSNode(parent, name2, mode, rdev) {
            if (!parent) {
              parent = this;
            }

            this.parent = parent;
            this.mount = parent.mount;
            this.mounted = null;
            this.id = FS.nextInode++;
            this.name = name2;
            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 get() {
                return (this.mode & readMode) === readMode;
              },
              set: function set(val) {
                val ? this.mode |= readMode : this.mode &= ~readMode;
              }
            },
            write: {
              get: function get() {
                return (this.mode & writeMode) === writeMode;
              },
              set: function set(val) {
                val ? this.mode |= writeMode : this.mode &= ~writeMode;
              }
            },
            isFolder: {
              get: function get() {
                return FS.isDir(this.mode);
              }
            },
            isDevice: {
              get: function get() {
                return FS.isChrdev(this.mode);
              }
            }
          });
          FS.FSNode = FSNode;
          FS.staticInit();
          Module["FS_createPath"] = FS.createPath;
          Module["FS_createDataFile"] = FS.createDataFile;
          Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
          Module["FS_createLazyFile"] = FS.createLazyFile;
          Module["FS_createDevice"] = FS.createDevice;
          Module["FS_unlink"] = FS.unlink;
          InternalError = Module["InternalError"] = extendError(Error, "InternalError");
          embind_init_charCodes();
          BindingError = Module["BindingError"] = extendError(Error, "BindingError");
          init_ClassHandle();
          init_RegisteredPointer();
          init_embind();
          UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
          init_emval();

          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;
          }

          __ATINIT__.push({
            func: function func() {
              ___wasm_call_ctors();
            }
          });

          var asmLibraryArg = {
            "x": ___assert_fail,
            "A": ___sys_fcntl64,
            "P": ___sys_ioctl,
            "Q": ___sys_open,
            "U": __embind_finalize_value_array,
            "s": __embind_finalize_value_object,
            "S": __embind_register_bool,
            "v": __embind_register_class,
            "u": __embind_register_class_constructor,
            "d": __embind_register_class_function,
            "R": __embind_register_emval,
            "C": __embind_register_float,
            "h": __embind_register_function,
            "m": __embind_register_integer,
            "k": __embind_register_memory_view,
            "D": __embind_register_std_string,
            "w": __embind_register_std_wstring,
            "V": __embind_register_value_array,
            "g": __embind_register_value_array_element,
            "t": __embind_register_value_object,
            "j": __embind_register_value_object_field,
            "T": __embind_register_void,
            "q": __emval_as,
            "W": __emval_call,
            "b": __emval_decref,
            "F": __emval_get_global,
            "n": __emval_get_property,
            "l": __emval_incref,
            "N": __emval_instanceof,
            "E": __emval_is_number,
            "y": __emval_new_array,
            "f": __emval_new_cstring,
            "r": __emval_new_object,
            "p": __emval_run_destructors,
            "i": __emval_set_property,
            "e": __emval_take_value,
            "c": _abort,
            "M": _clock_gettime,
            "I": _emscripten_memcpy_big,
            "o": _emscripten_resize_heap,
            "K": _environ_get,
            "L": _environ_sizes_get,
            "B": _fd_close,
            "O": _fd_read,
            "G": _fd_seek,
            "z": _fd_write,
            "a": wasmMemory,
            "H": _setTempRet0,
            "J": _strftime_l
          };
          var asm = createWasm();

          var ___wasm_call_ctors = Module["___wasm_call_ctors"] = function () {
            return (___wasm_call_ctors = Module["___wasm_call_ctors"] = Module["asm"]["Y"]).apply(null, arguments);
          };

          var _main = Module["_main"] = function () {
            return (_main = Module["_main"] = Module["asm"]["Z"]).apply(null, arguments);
          };

          var _malloc = Module["_malloc"] = function () {
            return (_malloc = Module["_malloc"] = Module["asm"]["_"]).apply(null, arguments);
          };

          var ___getTypeName = Module["___getTypeName"] = function () {
            return (___getTypeName = Module["___getTypeName"] = Module["asm"]["$"]).apply(null, arguments);
          };

          var ___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = function () {
            return (___embind_register_native_and_builtin_types = Module["___embind_register_native_and_builtin_types"] = Module["asm"]["aa"]).apply(null, arguments);
          };

          var ___errno_location = Module["___errno_location"] = function () {
            return (___errno_location = Module["___errno_location"] = Module["asm"]["ba"]).apply(null, arguments);
          };

          var _free = Module["_free"] = function () {
            return (_free = Module["_free"] = Module["asm"]["ca"]).apply(null, arguments);
          };

          var dynCall_jiji = Module["dynCall_jiji"] = function () {
            return (dynCall_jiji = Module["dynCall_jiji"] = Module["asm"]["da"]).apply(null, arguments);
          };

          var dynCall_viijii = Module["dynCall_viijii"] = function () {
            return (dynCall_viijii = Module["dynCall_viijii"] = Module["asm"]["ea"]).apply(null, arguments);
          };

          var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = function () {
            return (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = Module["asm"]["fa"]).apply(null, arguments);
          };

          var dynCall_iiiiij = Module["dynCall_iiiiij"] = function () {
            return (dynCall_iiiiij = Module["dynCall_iiiiij"] = Module["asm"]["ga"]).apply(null, arguments);
          };

          var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = function () {
            return (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = Module["asm"]["ha"]).apply(null, arguments);
          };

          Module["addRunDependency"] = addRunDependency;
          Module["removeRunDependency"] = removeRunDependency;
          Module["FS_createPath"] = FS.createPath;
          Module["FS_createDataFile"] = FS.createDataFile;
          Module["FS_createPreloadedFile"] = FS.createPreloadedFile;
          Module["FS_createLazyFile"] = FS.createLazyFile;
          Module["FS_createDevice"] = FS.createDevice;
          Module["FS_unlink"] = FS.unlink;
          Module["FS"] = FS;
          var calledRun;

          function ExitStatus(status) {
            this.name = "ExitStatus";
            this.message = "Program terminated with exit(" + status + ")";
            this.status = status;
          }

          var calledMain = false;

          dependenciesFulfilled = function runCaller() {
            if (!calledRun) run();
            if (!calledRun) dependenciesFulfilled = runCaller;
          };

          function callMain(args) {
            var entryFunction = Module["_main"];
            var argc = 0;
            var argv = 0;

            try {
              var ret = entryFunction(argc, argv);
              exit(ret, true);
            } catch (e) {
              if (e instanceof ExitStatus) {
                return;
              } else if (e == "unwind") {
                noExitRuntime = true;
                return;
              } else {
                var toLog = e;

                if (e && typeof e === "object" && e.stack) {
                  toLog = [e, e.stack];
                }

                err("exception thrown: " + toLog);
                quit_(1, e);
              }
            } finally {
              calledMain = true;
            }
          }

          function run(args) {
            args = args || arguments_;

            if (runDependencies > 0) {
              return;
            }

            preRun();
            if (runDependencies > 0) return;

            function doRun() {
              if (calledRun) return;
              calledRun = true;
              Module["calledRun"] = true;
              if (ABORT) return;
              initRuntime();
              preMain();
              readyPromiseResolve(Module);
              if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
              if (shouldRunNow) callMain(args);
              postRun();
            }

            if (Module["setStatus"]) {
              Module["setStatus"]("Running...");
              setTimeout(function () {
                setTimeout(function () {
                  Module["setStatus"]("");
                }, 1);
                doRun();
              }, 1);
            } else {
              doRun();
            }
          }

          Module["run"] = run;

          function exit(status, implicit) {
            if (implicit && noExitRuntime && status === 0) {
              return;
            }

            if (noExitRuntime) {} else {
              EXITSTATUS = status;
              exitRuntime();
              if (Module["onExit"]) Module["onExit"](status);
              ABORT = true;
            }

            quit_(status, new ExitStatus(status));
          }

          if (Module["preInit"]) {
            if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];

            while (Module["preInit"].length > 0) {
              Module["preInit"].pop()();
            }
          }

          var shouldRunNow = true;
          if (Module["noInitialRun"]) shouldRunNow = false;
          noExitRuntime = true;
          run();
          return WebIFCWasm3.ready;
        };
      }();

      if (typeof exports === "object" && typeof module === "object") module.exports = WebIFCWasm2;else if (typeof define === "function" && define["amd"]) define([], function () {
        return WebIFCWasm2;
      });else if (typeof exports === "object") exports["WebIFCWasm"] = WebIFCWasm2;
    }
  }); // dist/ifc2x4.ts


  var IFCACTIONREQUEST = 3821786052;
  _exports.IFCACTIONREQUEST = IFCACTIONREQUEST;
  var IFCACTOR = 2296667514;
  _exports.IFCACTOR = IFCACTOR;
  var IFCACTORROLE = 3630933823;
  _exports.IFCACTORROLE = IFCACTORROLE;
  var IFCACTUATOR = 4288193352;
  _exports.IFCACTUATOR = IFCACTUATOR;
  var IFCACTUATORTYPE = 2874132201;
  _exports.IFCACTUATORTYPE = IFCACTUATORTYPE;
  var IFCADDRESS = 618182010;
  _exports.IFCADDRESS = IFCADDRESS;
  var IFCADVANCEDBREP = 1635779807;
  _exports.IFCADVANCEDBREP = IFCADVANCEDBREP;
  var IFCADVANCEDBREPWITHVOIDS = 2603310189;
  _exports.IFCADVANCEDBREPWITHVOIDS = IFCADVANCEDBREPWITHVOIDS;
  var IFCADVANCEDFACE = 3406155212;
  _exports.IFCADVANCEDFACE = IFCADVANCEDFACE;
  var IFCAIRTERMINAL = 1634111441;
  _exports.IFCAIRTERMINAL = IFCAIRTERMINAL;
  var IFCAIRTERMINALBOX = 177149247;
  _exports.IFCAIRTERMINALBOX = IFCAIRTERMINALBOX;
  var IFCAIRTERMINALBOXTYPE = 1411407467;
  _exports.IFCAIRTERMINALBOXTYPE = IFCAIRTERMINALBOXTYPE;
  var IFCAIRTERMINALTYPE = 3352864051;
  _exports.IFCAIRTERMINALTYPE = IFCAIRTERMINALTYPE;
  var IFCAIRTOAIRHEATRECOVERY = 2056796094;
  _exports.IFCAIRTOAIRHEATRECOVERY = IFCAIRTOAIRHEATRECOVERY;
  var IFCAIRTOAIRHEATRECOVERYTYPE = 1871374353;
  _exports.IFCAIRTOAIRHEATRECOVERYTYPE = IFCAIRTOAIRHEATRECOVERYTYPE;
  var IFCALARM = 3087945054;
  _exports.IFCALARM = IFCALARM;
  var IFCALARMTYPE = 3001207471;
  _exports.IFCALARMTYPE = IFCALARMTYPE;
  var IFCALIGNMENT = 325726236;
  _exports.IFCALIGNMENT = IFCALIGNMENT;
  var IFCALIGNMENT2DHORIZONTAL = 749761778;
  _exports.IFCALIGNMENT2DHORIZONTAL = IFCALIGNMENT2DHORIZONTAL;
  var IFCALIGNMENT2DHORIZONTALSEGMENT = 3199563722;
  _exports.IFCALIGNMENT2DHORIZONTALSEGMENT = IFCALIGNMENT2DHORIZONTALSEGMENT;
  var IFCALIGNMENT2DSEGMENT = 2483840362;
  _exports.IFCALIGNMENT2DSEGMENT = IFCALIGNMENT2DSEGMENT;
  var IFCALIGNMENT2DVERSEGCIRCULARARC = 3379348081;
  _exports.IFCALIGNMENT2DVERSEGCIRCULARARC = IFCALIGNMENT2DVERSEGCIRCULARARC;
  var IFCALIGNMENT2DVERSEGLINE = 3239324667;
  _exports.IFCALIGNMENT2DVERSEGLINE = IFCALIGNMENT2DVERSEGLINE;
  var IFCALIGNMENT2DVERSEGPARABOLICARC = 4263986512;
  _exports.IFCALIGNMENT2DVERSEGPARABOLICARC = IFCALIGNMENT2DVERSEGPARABOLICARC;
  var IFCALIGNMENT2DVERTICAL = 53199957;
  _exports.IFCALIGNMENT2DVERTICAL = IFCALIGNMENT2DVERTICAL;
  var IFCALIGNMENT2DVERTICALSEGMENT = 2029264950;
  _exports.IFCALIGNMENT2DVERTICALSEGMENT = IFCALIGNMENT2DVERTICALSEGMENT;
  var IFCALIGNMENTCURVE = 3512275521;
  _exports.IFCALIGNMENTCURVE = IFCALIGNMENTCURVE;
  var IFCANNOTATION = 1674181508;
  _exports.IFCANNOTATION = IFCANNOTATION;
  var IFCANNOTATIONFILLAREA = 669184980;
  _exports.IFCANNOTATIONFILLAREA = IFCANNOTATIONFILLAREA;
  var IFCAPPLICATION = 639542469;
  _exports.IFCAPPLICATION = IFCAPPLICATION;
  var IFCAPPLIEDVALUE = 411424972;
  _exports.IFCAPPLIEDVALUE = IFCAPPLIEDVALUE;
  var IFCAPPROVAL = 130549933;
  _exports.IFCAPPROVAL = IFCAPPROVAL;
  var IFCAPPROVALRELATIONSHIP = 3869604511;
  _exports.IFCAPPROVALRELATIONSHIP = IFCAPPROVALRELATIONSHIP;
  var IFCARBITRARYCLOSEDPROFILEDEF = 3798115385;
  _exports.IFCARBITRARYCLOSEDPROFILEDEF = IFCARBITRARYCLOSEDPROFILEDEF;
  var IFCARBITRARYOPENPROFILEDEF = 1310608509;
  _exports.IFCARBITRARYOPENPROFILEDEF = IFCARBITRARYOPENPROFILEDEF;
  var IFCARBITRARYPROFILEDEFWITHVOIDS = 2705031697;
  _exports.IFCARBITRARYPROFILEDEFWITHVOIDS = IFCARBITRARYPROFILEDEFWITHVOIDS;
  var IFCASSET = 3460190687;
  _exports.IFCASSET = IFCASSET;
  var IFCASYMMETRICISHAPEPROFILEDEF = 3207858831;
  _exports.IFCASYMMETRICISHAPEPROFILEDEF = IFCASYMMETRICISHAPEPROFILEDEF;
  var IFCAUDIOVISUALAPPLIANCE = 277319702;
  _exports.IFCAUDIOVISUALAPPLIANCE = IFCAUDIOVISUALAPPLIANCE;
  var IFCAUDIOVISUALAPPLIANCETYPE = 1532957894;
  _exports.IFCAUDIOVISUALAPPLIANCETYPE = IFCAUDIOVISUALAPPLIANCETYPE;
  var IFCAXIS1PLACEMENT = 4261334040;
  _exports.IFCAXIS1PLACEMENT = IFCAXIS1PLACEMENT;
  var IFCAXIS2PLACEMENT2D = 3125803723;
  _exports.IFCAXIS2PLACEMENT2D = IFCAXIS2PLACEMENT2D;
  var IFCAXIS2PLACEMENT3D = 2740243338;
  _exports.IFCAXIS2PLACEMENT3D = IFCAXIS2PLACEMENT3D;
  var IFCBSPLINECURVE = 1967976161;
  _exports.IFCBSPLINECURVE = IFCBSPLINECURVE;
  var IFCBSPLINECURVEWITHKNOTS = 2461110595;
  _exports.IFCBSPLINECURVEWITHKNOTS = IFCBSPLINECURVEWITHKNOTS;
  var IFCBSPLINESURFACE = 2887950389;
  _exports.IFCBSPLINESURFACE = IFCBSPLINESURFACE;
  var IFCBSPLINESURFACEWITHKNOTS = 167062518;
  _exports.IFCBSPLINESURFACEWITHKNOTS = IFCBSPLINESURFACEWITHKNOTS;
  var IFCBEAM = 753842376;
  _exports.IFCBEAM = IFCBEAM;
  var IFCBEAMSTANDARDCASE = 2906023776;
  _exports.IFCBEAMSTANDARDCASE = IFCBEAMSTANDARDCASE;
  var IFCBEAMTYPE = 819618141;
  _exports.IFCBEAMTYPE = IFCBEAMTYPE;
  var IFCBEARING = 4196446775;
  _exports.IFCBEARING = IFCBEARING;
  var IFCBEARINGTYPE = 3649138523;
  _exports.IFCBEARINGTYPE = IFCBEARINGTYPE;
  var IFCBLOBTEXTURE = 616511568;
  _exports.IFCBLOBTEXTURE = IFCBLOBTEXTURE;
  var IFCBLOCK = 1334484129;
  _exports.IFCBLOCK = IFCBLOCK;
  var IFCBOILER = 32344328;
  _exports.IFCBOILER = IFCBOILER;
  var IFCBOILERTYPE = 231477066;
  _exports.IFCBOILERTYPE = IFCBOILERTYPE;
  var IFCBOOLEANCLIPPINGRESULT = 3649129432;
  _exports.IFCBOOLEANCLIPPINGRESULT = IFCBOOLEANCLIPPINGRESULT;
  var IFCBOOLEANRESULT = 2736907675;
  _exports.IFCBOOLEANRESULT = IFCBOOLEANRESULT;
  var IFCBOUNDARYCONDITION = 4037036970;
  _exports.IFCBOUNDARYCONDITION = IFCBOUNDARYCONDITION;
  var IFCBOUNDARYCURVE = 1136057603;
  _exports.IFCBOUNDARYCURVE = IFCBOUNDARYCURVE;
  var IFCBOUNDARYEDGECONDITION = 1560379544;
  _exports.IFCBOUNDARYEDGECONDITION = IFCBOUNDARYEDGECONDITION;
  var IFCBOUNDARYFACECONDITION = 3367102660;
  _exports.IFCBOUNDARYFACECONDITION = IFCBOUNDARYFACECONDITION;
  var IFCBOUNDARYNODECONDITION = 1387855156;
  _exports.IFCBOUNDARYNODECONDITION = IFCBOUNDARYNODECONDITION;
  var IFCBOUNDARYNODECONDITIONWARPING = 2069777674;
  _exports.IFCBOUNDARYNODECONDITIONWARPING = IFCBOUNDARYNODECONDITIONWARPING;
  var IFCBOUNDEDCURVE = 1260505505;
  _exports.IFCBOUNDEDCURVE = IFCBOUNDEDCURVE;
  var IFCBOUNDEDSURFACE = 4182860854;
  _exports.IFCBOUNDEDSURFACE = IFCBOUNDEDSURFACE;
  var IFCBOUNDINGBOX = 2581212453;
  _exports.IFCBOUNDINGBOX = IFCBOUNDINGBOX;
  var IFCBOXEDHALFSPACE = 2713105998;
  _exports.IFCBOXEDHALFSPACE = IFCBOXEDHALFSPACE;
  var IFCBRIDGE = 644574406;
  _exports.IFCBRIDGE = IFCBRIDGE;
  var IFCBRIDGEPART = 963979645;
  _exports.IFCBRIDGEPART = IFCBRIDGEPART;
  var IFCBUILDING = 4031249490;
  _exports.IFCBUILDING = IFCBUILDING;
  var IFCBUILDINGELEMENT = 3299480353;
  _exports.IFCBUILDINGELEMENT = IFCBUILDINGELEMENT;
  var IFCBUILDINGELEMENTPART = 2979338954;
  _exports.IFCBUILDINGELEMENTPART = IFCBUILDINGELEMENTPART;
  var IFCBUILDINGELEMENTPARTTYPE = 39481116;
  _exports.IFCBUILDINGELEMENTPARTTYPE = IFCBUILDINGELEMENTPARTTYPE;
  var IFCBUILDINGELEMENTPROXY = 1095909175;
  _exports.IFCBUILDINGELEMENTPROXY = IFCBUILDINGELEMENTPROXY;
  var IFCBUILDINGELEMENTPROXYTYPE = 1909888760;
  _exports.IFCBUILDINGELEMENTPROXYTYPE = IFCBUILDINGELEMENTPROXYTYPE;
  var IFCBUILDINGELEMENTTYPE = 1950629157;
  _exports.IFCBUILDINGELEMENTTYPE = IFCBUILDINGELEMENTTYPE;
  var IFCBUILDINGSTOREY = 3124254112;
  _exports.IFCBUILDINGSTOREY = IFCBUILDINGSTOREY;
  var IFCBUILDINGSYSTEM = 1177604601;
  _exports.IFCBUILDINGSYSTEM = IFCBUILDINGSYSTEM;
  var IFCBURNER = 2938176219;
  _exports.IFCBURNER = IFCBURNER;
  var IFCBURNERTYPE = 2188180465;
  _exports.IFCBURNERTYPE = IFCBURNERTYPE;
  var IFCCSHAPEPROFILEDEF = 2898889636;
  _exports.IFCCSHAPEPROFILEDEF = IFCCSHAPEPROFILEDEF;
  var IFCCABLECARRIERFITTING = 635142910;
  _exports.IFCCABLECARRIERFITTING = IFCCABLECARRIERFITTING;
  var IFCCABLECARRIERFITTINGTYPE = 395041908;
  _exports.IFCCABLECARRIERFITTINGTYPE = IFCCABLECARRIERFITTINGTYPE;
  var IFCCABLECARRIERSEGMENT = 3758799889;
  _exports.IFCCABLECARRIERSEGMENT = IFCCABLECARRIERSEGMENT;
  var IFCCABLECARRIERSEGMENTTYPE = 3293546465;
  _exports.IFCCABLECARRIERSEGMENTTYPE = IFCCABLECARRIERSEGMENTTYPE;
  var IFCCABLEFITTING = 1051757585;
  _exports.IFCCABLEFITTING = IFCCABLEFITTING;
  var IFCCABLEFITTINGTYPE = 2674252688;
  _exports.IFCCABLEFITTINGTYPE = IFCCABLEFITTINGTYPE;
  var IFCCABLESEGMENT = 4217484030;
  _exports.IFCCABLESEGMENT = IFCCABLESEGMENT;
  var IFCCABLESEGMENTTYPE = 1285652485;
  _exports.IFCCABLESEGMENTTYPE = IFCCABLESEGMENTTYPE;
  var IFCCAISSONFOUNDATION = 3999819293;
  _exports.IFCCAISSONFOUNDATION = IFCCAISSONFOUNDATION;
  var IFCCAISSONFOUNDATIONTYPE = 3203706013;
  _exports.IFCCAISSONFOUNDATIONTYPE = IFCCAISSONFOUNDATIONTYPE;
  var IFCCARTESIANPOINT = 1123145078;
  _exports.IFCCARTESIANPOINT = IFCCARTESIANPOINT;
  var IFCCARTESIANPOINTLIST = 574549367;
  _exports.IFCCARTESIANPOINTLIST = IFCCARTESIANPOINTLIST;
  var IFCCARTESIANPOINTLIST2D = 1675464909;
  _exports.IFCCARTESIANPOINTLIST2D = IFCCARTESIANPOINTLIST2D;
  var IFCCARTESIANPOINTLIST3D = 2059837836;
  _exports.IFCCARTESIANPOINTLIST3D = IFCCARTESIANPOINTLIST3D;
  var IFCCARTESIANTRANSFORMATIONOPERATOR = 59481748;
  _exports.IFCCARTESIANTRANSFORMATIONOPERATOR = IFCCARTESIANTRANSFORMATIONOPERATOR;
  var IFCCARTESIANTRANSFORMATIONOPERATOR2D = 3749851601;
  _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2D = IFCCARTESIANTRANSFORMATIONOPERATOR2D;
  var IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = 3486308946;
  _exports.IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM;
  var IFCCARTESIANTRANSFORMATIONOPERATOR3D = 3331915920;
  _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3D = IFCCARTESIANTRANSFORMATIONOPERATOR3D;
  var IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = 1416205885;
  _exports.IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM;
  var IFCCENTERLINEPROFILEDEF = 3150382593;
  _exports.IFCCENTERLINEPROFILEDEF = IFCCENTERLINEPROFILEDEF;
  var IFCCHILLER = 3902619387;
  _exports.IFCCHILLER = IFCCHILLER;
  var IFCCHILLERTYPE = 2951183804;
  _exports.IFCCHILLERTYPE = IFCCHILLERTYPE;
  var IFCCHIMNEY = 3296154744;
  _exports.IFCCHIMNEY = IFCCHIMNEY;
  var IFCCHIMNEYTYPE = 2197970202;
  _exports.IFCCHIMNEYTYPE = IFCCHIMNEYTYPE;
  var IFCCIRCLE = 2611217952;
  _exports.IFCCIRCLE = IFCCIRCLE;
  var IFCCIRCLEHOLLOWPROFILEDEF = 2937912522;
  _exports.IFCCIRCLEHOLLOWPROFILEDEF = IFCCIRCLEHOLLOWPROFILEDEF;
  var IFCCIRCLEPROFILEDEF = 1383045692;
  _exports.IFCCIRCLEPROFILEDEF = IFCCIRCLEPROFILEDEF;
  var IFCCIRCULARARCSEGMENT2D = 1062206242;
  _exports.IFCCIRCULARARCSEGMENT2D = IFCCIRCULARARCSEGMENT2D;
  var IFCCIVILELEMENT = 1677625105;
  _exports.IFCCIVILELEMENT = IFCCIVILELEMENT;
  var IFCCIVILELEMENTTYPE = 3893394355;
  _exports.IFCCIVILELEMENTTYPE = IFCCIVILELEMENTTYPE;
  var IFCCLASSIFICATION = 747523909;
  _exports.IFCCLASSIFICATION = IFCCLASSIFICATION;
  var IFCCLASSIFICATIONREFERENCE = 647927063;
  _exports.IFCCLASSIFICATIONREFERENCE = IFCCLASSIFICATIONREFERENCE;
  var IFCCLOSEDSHELL = 2205249479;
  _exports.IFCCLOSEDSHELL = IFCCLOSEDSHELL;
  var IFCCOIL = 639361253;
  _exports.IFCCOIL = IFCCOIL;
  var IFCCOILTYPE = 2301859152;
  _exports.IFCCOILTYPE = IFCCOILTYPE;
  var IFCCOLOURRGB = 776857604;
  _exports.IFCCOLOURRGB = IFCCOLOURRGB;
  var IFCCOLOURRGBLIST = 3285139300;
  _exports.IFCCOLOURRGBLIST = IFCCOLOURRGBLIST;
  var IFCCOLOURSPECIFICATION = 3264961684;
  _exports.IFCCOLOURSPECIFICATION = IFCCOLOURSPECIFICATION;
  var IFCCOLUMN = 843113511;
  _exports.IFCCOLUMN = IFCCOLUMN;
  var IFCCOLUMNSTANDARDCASE = 905975707;
  _exports.IFCCOLUMNSTANDARDCASE = IFCCOLUMNSTANDARDCASE;
  var IFCCOLUMNTYPE = 300633059;
  _exports.IFCCOLUMNTYPE = IFCCOLUMNTYPE;
  var IFCCOMMUNICATIONSAPPLIANCE = 3221913625;
  _exports.IFCCOMMUNICATIONSAPPLIANCE = IFCCOMMUNICATIONSAPPLIANCE;
  var IFCCOMMUNICATIONSAPPLIANCETYPE = 400855858;
  _exports.IFCCOMMUNICATIONSAPPLIANCETYPE = IFCCOMMUNICATIONSAPPLIANCETYPE;
  var IFCCOMPLEXPROPERTY = 2542286263;
  _exports.IFCCOMPLEXPROPERTY = IFCCOMPLEXPROPERTY;
  var IFCCOMPLEXPROPERTYTEMPLATE = 3875453745;
  _exports.IFCCOMPLEXPROPERTYTEMPLATE = IFCCOMPLEXPROPERTYTEMPLATE;
  var IFCCOMPOSITECURVE = 3732776249;
  _exports.IFCCOMPOSITECURVE = IFCCOMPOSITECURVE;
  var IFCCOMPOSITECURVEONSURFACE = 15328376;
  _exports.IFCCOMPOSITECURVEONSURFACE = IFCCOMPOSITECURVEONSURFACE;
  var IFCCOMPOSITECURVESEGMENT = 2485617015;
  _exports.IFCCOMPOSITECURVESEGMENT = IFCCOMPOSITECURVESEGMENT;
  var IFCCOMPOSITEPROFILEDEF = 1485152156;
  _exports.IFCCOMPOSITEPROFILEDEF = IFCCOMPOSITEPROFILEDEF;
  var IFCCOMPRESSOR = 3571504051;
  _exports.IFCCOMPRESSOR = IFCCOMPRESSOR;
  var IFCCOMPRESSORTYPE = 3850581409;
  _exports.IFCCOMPRESSORTYPE = IFCCOMPRESSORTYPE;
  var IFCCONDENSER = 2272882330;
  _exports.IFCCONDENSER = IFCCONDENSER;
  var IFCCONDENSERTYPE = 2816379211;
  _exports.IFCCONDENSERTYPE = IFCCONDENSERTYPE;
  var IFCCONIC = 2510884976;
  _exports.IFCCONIC = IFCCONIC;
  var IFCCONNECTEDFACESET = 370225590;
  _exports.IFCCONNECTEDFACESET = IFCCONNECTEDFACESET;
  var IFCCONNECTIONCURVEGEOMETRY = 1981873012;
  _exports.IFCCONNECTIONCURVEGEOMETRY = IFCCONNECTIONCURVEGEOMETRY;
  var IFCCONNECTIONGEOMETRY = 2859738748;
  _exports.IFCCONNECTIONGEOMETRY = IFCCONNECTIONGEOMETRY;
  var IFCCONNECTIONPOINTECCENTRICITY = 45288368;
  _exports.IFCCONNECTIONPOINTECCENTRICITY = IFCCONNECTIONPOINTECCENTRICITY;
  var IFCCONNECTIONPOINTGEOMETRY = 2614616156;
  _exports.IFCCONNECTIONPOINTGEOMETRY = IFCCONNECTIONPOINTGEOMETRY;
  var IFCCONNECTIONSURFACEGEOMETRY = 2732653382;
  _exports.IFCCONNECTIONSURFACEGEOMETRY = IFCCONNECTIONSURFACEGEOMETRY;
  var IFCCONNECTIONVOLUMEGEOMETRY = 775493141;
  _exports.IFCCONNECTIONVOLUMEGEOMETRY = IFCCONNECTIONVOLUMEGEOMETRY;
  var IFCCONSTRAINT = 1959218052;
  _exports.IFCCONSTRAINT = IFCCONSTRAINT;
  var IFCCONSTRUCTIONEQUIPMENTRESOURCE = 3898045240;
  _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCE = IFCCONSTRUCTIONEQUIPMENTRESOURCE;
  var IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = 2185764099;
  _exports.IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE;
  var IFCCONSTRUCTIONMATERIALRESOURCE = 1060000209;
  _exports.IFCCONSTRUCTIONMATERIALRESOURCE = IFCCONSTRUCTIONMATERIALRESOURCE;
  var IFCCONSTRUCTIONMATERIALRESOURCETYPE = 4105962743;
  _exports.IFCCONSTRUCTIONMATERIALRESOURCETYPE = IFCCONSTRUCTIONMATERIALRESOURCETYPE;
  var IFCCONSTRUCTIONPRODUCTRESOURCE = 488727124;
  _exports.IFCCONSTRUCTIONPRODUCTRESOURCE = IFCCONSTRUCTIONPRODUCTRESOURCE;
  var IFCCONSTRUCTIONPRODUCTRESOURCETYPE = 1525564444;
  _exports.IFCCONSTRUCTIONPRODUCTRESOURCETYPE = IFCCONSTRUCTIONPRODUCTRESOURCETYPE;
  var IFCCONSTRUCTIONRESOURCE = 2559216714;
  _exports.IFCCONSTRUCTIONRESOURCE = IFCCONSTRUCTIONRESOURCE;
  var IFCCONSTRUCTIONRESOURCETYPE = 2574617495;
  _exports.IFCCONSTRUCTIONRESOURCETYPE = IFCCONSTRUCTIONRESOURCETYPE;
  var IFCCONTEXT = 3419103109;
  _exports.IFCCONTEXT = IFCCONTEXT;
  var IFCCONTEXTDEPENDENTUNIT = 3050246964;
  _exports.IFCCONTEXTDEPENDENTUNIT = IFCCONTEXTDEPENDENTUNIT;
  var IFCCONTROL = 3293443760;
  _exports.IFCCONTROL = IFCCONTROL;
  var IFCCONTROLLER = 25142252;
  _exports.IFCCONTROLLER = IFCCONTROLLER;
  var IFCCONTROLLERTYPE = 578613899;
  _exports.IFCCONTROLLERTYPE = IFCCONTROLLERTYPE;
  var IFCCONVERSIONBASEDUNIT = 2889183280;
  _exports.IFCCONVERSIONBASEDUNIT = IFCCONVERSIONBASEDUNIT;
  var IFCCONVERSIONBASEDUNITWITHOFFSET = 2713554722;
  _exports.IFCCONVERSIONBASEDUNITWITHOFFSET = IFCCONVERSIONBASEDUNITWITHOFFSET;
  var IFCCOOLEDBEAM = 4136498852;
  _exports.IFCCOOLEDBEAM = IFCCOOLEDBEAM;
  var IFCCOOLEDBEAMTYPE = 335055490;
  _exports.IFCCOOLEDBEAMTYPE = IFCCOOLEDBEAMTYPE;
  var IFCCOOLINGTOWER = 3640358203;
  _exports.IFCCOOLINGTOWER = IFCCOOLINGTOWER;
  var IFCCOOLINGTOWERTYPE = 2954562838;
  _exports.IFCCOOLINGTOWERTYPE = IFCCOOLINGTOWERTYPE;
  var IFCCOORDINATEOPERATION = 1785450214;
  _exports.IFCCOORDINATEOPERATION = IFCCOORDINATEOPERATION;
  var IFCCOORDINATEREFERENCESYSTEM = 1466758467;
  _exports.IFCCOORDINATEREFERENCESYSTEM = IFCCOORDINATEREFERENCESYSTEM;
  var IFCCOSTITEM = 3895139033;
  _exports.IFCCOSTITEM = IFCCOSTITEM;
  var IFCCOSTSCHEDULE = 1419761937;
  _exports.IFCCOSTSCHEDULE = IFCCOSTSCHEDULE;
  var IFCCOSTVALUE = 602808272;
  _exports.IFCCOSTVALUE = IFCCOSTVALUE;
  var IFCCOVERING = 1973544240;
  _exports.IFCCOVERING = IFCCOVERING;
  var IFCCOVERINGTYPE = 1916426348;
  _exports.IFCCOVERINGTYPE = IFCCOVERINGTYPE;
  var IFCCREWRESOURCE = 3295246426;
  _exports.IFCCREWRESOURCE = IFCCREWRESOURCE;
  var IFCCREWRESOURCETYPE = 1815067380;
  _exports.IFCCREWRESOURCETYPE = IFCCREWRESOURCETYPE;
  var IFCCSGPRIMITIVE3D = 2506170314;
  _exports.IFCCSGPRIMITIVE3D = IFCCSGPRIMITIVE3D;
  var IFCCSGSOLID = 2147822146;
  _exports.IFCCSGSOLID = IFCCSGSOLID;
  var IFCCURRENCYRELATIONSHIP = 539742890;
  _exports.IFCCURRENCYRELATIONSHIP = IFCCURRENCYRELATIONSHIP;
  var IFCCURTAINWALL = 3495092785;
  _exports.IFCCURTAINWALL = IFCCURTAINWALL;
  var IFCCURTAINWALLTYPE = 1457835157;
  _exports.IFCCURTAINWALLTYPE = IFCCURTAINWALLTYPE;
  var IFCCURVE = 2601014836;
  _exports.IFCCURVE = IFCCURVE;
  var IFCCURVEBOUNDEDPLANE = 2827736869;
  _exports.IFCCURVEBOUNDEDPLANE = IFCCURVEBOUNDEDPLANE;
  var IFCCURVEBOUNDEDSURFACE = 2629017746;
  _exports.IFCCURVEBOUNDEDSURFACE = IFCCURVEBOUNDEDSURFACE;
  var IFCCURVESEGMENT2D = 1186437898;
  _exports.IFCCURVESEGMENT2D = IFCCURVESEGMENT2D;
  var IFCCURVESTYLE = 3800577675;
  _exports.IFCCURVESTYLE = IFCCURVESTYLE;
  var IFCCURVESTYLEFONT = 1105321065;
  _exports.IFCCURVESTYLEFONT = IFCCURVESTYLEFONT;
  var IFCCURVESTYLEFONTANDSCALING = 2367409068;
  _exports.IFCCURVESTYLEFONTANDSCALING = IFCCURVESTYLEFONTANDSCALING;
  var IFCCURVESTYLEFONTPATTERN = 3510044353;
  _exports.IFCCURVESTYLEFONTPATTERN = IFCCURVESTYLEFONTPATTERN;
  var IFCCYLINDRICALSURFACE = 1213902940;
  _exports.IFCCYLINDRICALSURFACE = IFCCYLINDRICALSURFACE;
  var IFCDAMPER = 4074379575;
  _exports.IFCDAMPER = IFCDAMPER;
  var IFCDAMPERTYPE = 3961806047;
  _exports.IFCDAMPERTYPE = IFCDAMPERTYPE;
  var IFCDEEPFOUNDATION = 3426335179;
  _exports.IFCDEEPFOUNDATION = IFCDEEPFOUNDATION;
  var IFCDEEPFOUNDATIONTYPE = 1306400036;
  _exports.IFCDEEPFOUNDATIONTYPE = IFCDEEPFOUNDATIONTYPE;
  var IFCDERIVEDPROFILEDEF = 3632507154;
  _exports.IFCDERIVEDPROFILEDEF = IFCDERIVEDPROFILEDEF;
  var IFCDERIVEDUNIT = 1765591967;
  _exports.IFCDERIVEDUNIT = IFCDERIVEDUNIT;
  var IFCDERIVEDUNITELEMENT = 1045800335;
  _exports.IFCDERIVEDUNITELEMENT = IFCDERIVEDUNITELEMENT;
  var IFCDIMENSIONALEXPONENTS = 2949456006;
  _exports.IFCDIMENSIONALEXPONENTS = IFCDIMENSIONALEXPONENTS;
  var IFCDIRECTION = 32440307;
  _exports.IFCDIRECTION = IFCDIRECTION;
  var IFCDISCRETEACCESSORY = 1335981549;
  _exports.IFCDISCRETEACCESSORY = IFCDISCRETEACCESSORY;
  var IFCDISCRETEACCESSORYTYPE = 2635815018;
  _exports.IFCDISCRETEACCESSORYTYPE = IFCDISCRETEACCESSORYTYPE;
  var IFCDISTANCEEXPRESSION = 1945343521;
  _exports.IFCDISTANCEEXPRESSION = IFCDISTANCEEXPRESSION;
  var IFCDISTRIBUTIONCHAMBERELEMENT = 1052013943;
  _exports.IFCDISTRIBUTIONCHAMBERELEMENT = IFCDISTRIBUTIONCHAMBERELEMENT;
  var IFCDISTRIBUTIONCHAMBERELEMENTTYPE = 1599208980;
  _exports.IFCDISTRIBUTIONCHAMBERELEMENTTYPE = IFCDISTRIBUTIONCHAMBERELEMENTTYPE;
  var IFCDISTRIBUTIONCIRCUIT = 562808652;
  _exports.IFCDISTRIBUTIONCIRCUIT = IFCDISTRIBUTIONCIRCUIT;
  var IFCDISTRIBUTIONCONTROLELEMENT = 1062813311;
  _exports.IFCDISTRIBUTIONCONTROLELEMENT = IFCDISTRIBUTIONCONTROLELEMENT;
  var IFCDISTRIBUTIONCONTROLELEMENTTYPE = 2063403501;
  _exports.IFCDISTRIBUTIONCONTROLELEMENTTYPE = IFCDISTRIBUTIONCONTROLELEMENTTYPE;
  var IFCDISTRIBUTIONELEMENT = 1945004755;
  _exports.IFCDISTRIBUTIONELEMENT = IFCDISTRIBUTIONELEMENT;
  var IFCDISTRIBUTIONELEMENTTYPE = 3256556792;
  _exports.IFCDISTRIBUTIONELEMENTTYPE = IFCDISTRIBUTIONELEMENTTYPE;
  var IFCDISTRIBUTIONFLOWELEMENT = 3040386961;
  _exports.IFCDISTRIBUTIONFLOWELEMENT = IFCDISTRIBUTIONFLOWELEMENT;
  var IFCDISTRIBUTIONFLOWELEMENTTYPE = 3849074793;
  _exports.IFCDISTRIBUTIONFLOWELEMENTTYPE = IFCDISTRIBUTIONFLOWELEMENTTYPE;
  var IFCDISTRIBUTIONPORT = 3041715199;
  _exports.IFCDISTRIBUTIONPORT = IFCDISTRIBUTIONPORT;
  var IFCDISTRIBUTIONSYSTEM = 3205830791;
  _exports.IFCDISTRIBUTIONSYSTEM = IFCDISTRIBUTIONSYSTEM;
  var IFCDOCUMENTINFORMATION = 1154170062;
  _exports.IFCDOCUMENTINFORMATION = IFCDOCUMENTINFORMATION;
  var IFCDOCUMENTINFORMATIONRELATIONSHIP = 770865208;
  _exports.IFCDOCUMENTINFORMATIONRELATIONSHIP = IFCDOCUMENTINFORMATIONRELATIONSHIP;
  var IFCDOCUMENTREFERENCE = 3732053477;
  _exports.IFCDOCUMENTREFERENCE = IFCDOCUMENTREFERENCE;
  var IFCDOOR = 395920057;
  _exports.IFCDOOR = IFCDOOR;
  var IFCDOORLININGPROPERTIES = 2963535650;
  _exports.IFCDOORLININGPROPERTIES = IFCDOORLININGPROPERTIES;
  var IFCDOORPANELPROPERTIES = 1714330368;
  _exports.IFCDOORPANELPROPERTIES = IFCDOORPANELPROPERTIES;
  var IFCDOORSTANDARDCASE = 3242481149;
  _exports.IFCDOORSTANDARDCASE = IFCDOORSTANDARDCASE;
  var IFCDOORSTYLE = 526551008;
  _exports.IFCDOORSTYLE = IFCDOORSTYLE;
  var IFCDOORTYPE = 2323601079;
  _exports.IFCDOORTYPE = IFCDOORTYPE;
  var IFCDRAUGHTINGPREDEFINEDCOLOUR = 445594917;
  _exports.IFCDRAUGHTINGPREDEFINEDCOLOUR = IFCDRAUGHTINGPREDEFINEDCOLOUR;
  var IFCDRAUGHTINGPREDEFINEDCURVEFONT = 4006246654;
  _exports.IFCDRAUGHTINGPREDEFINEDCURVEFONT = IFCDRAUGHTINGPREDEFINEDCURVEFONT;
  var IFCDUCTFITTING = 342316401;
  _exports.IFCDUCTFITTING = IFCDUCTFITTING;
  var IFCDUCTFITTINGTYPE = 869906466;
  _exports.IFCDUCTFITTINGTYPE = IFCDUCTFITTINGTYPE;
  var IFCDUCTSEGMENT = 3518393246;
  _exports.IFCDUCTSEGMENT = IFCDUCTSEGMENT;
  var IFCDUCTSEGMENTTYPE = 3760055223;
  _exports.IFCDUCTSEGMENTTYPE = IFCDUCTSEGMENTTYPE;
  var IFCDUCTSILENCER = 1360408905;
  _exports.IFCDUCTSILENCER = IFCDUCTSILENCER;
  var IFCDUCTSILENCERTYPE = 2030761528;
  _exports.IFCDUCTSILENCERTYPE = IFCDUCTSILENCERTYPE;
  var IFCEDGE = 3900360178;
  _exports.IFCEDGE = IFCEDGE;
  var IFCEDGECURVE = 476780140;
  _exports.IFCEDGECURVE = IFCEDGECURVE;
  var IFCEDGELOOP = 1472233963;
  _exports.IFCEDGELOOP = IFCEDGELOOP;
  var IFCELECTRICAPPLIANCE = 1904799276;
  _exports.IFCELECTRICAPPLIANCE = IFCELECTRICAPPLIANCE;
  var IFCELECTRICAPPLIANCETYPE = 663422040;
  _exports.IFCELECTRICAPPLIANCETYPE = IFCELECTRICAPPLIANCETYPE;
  var IFCELECTRICDISTRIBUTIONBOARD = 862014818;
  _exports.IFCELECTRICDISTRIBUTIONBOARD = IFCELECTRICDISTRIBUTIONBOARD;
  var IFCELECTRICDISTRIBUTIONBOARDTYPE = 2417008758;
  _exports.IFCELECTRICDISTRIBUTIONBOARDTYPE = IFCELECTRICDISTRIBUTIONBOARDTYPE;
  var IFCELECTRICFLOWSTORAGEDEVICE = 3310460725;
  _exports.IFCELECTRICFLOWSTORAGEDEVICE = IFCELECTRICFLOWSTORAGEDEVICE;
  var IFCELECTRICFLOWSTORAGEDEVICETYPE = 3277789161;
  _exports.IFCELECTRICFLOWSTORAGEDEVICETYPE = IFCELECTRICFLOWSTORAGEDEVICETYPE;
  var IFCELECTRICGENERATOR = 264262732;
  _exports.IFCELECTRICGENERATOR = IFCELECTRICGENERATOR;
  var IFCELECTRICGENERATORTYPE = 1534661035;
  _exports.IFCELECTRICGENERATORTYPE = IFCELECTRICGENERATORTYPE;
  var IFCELECTRICMOTOR = 402227799;
  _exports.IFCELECTRICMOTOR = IFCELECTRICMOTOR;
  var IFCELECTRICMOTORTYPE = 1217240411;
  _exports.IFCELECTRICMOTORTYPE = IFCELECTRICMOTORTYPE;
  var IFCELECTRICTIMECONTROL = 1003880860;
  _exports.IFCELECTRICTIMECONTROL = IFCELECTRICTIMECONTROL;
  var IFCELECTRICTIMECONTROLTYPE = 712377611;
  _exports.IFCELECTRICTIMECONTROLTYPE = IFCELECTRICTIMECONTROLTYPE;
  var IFCELEMENT = 1758889154;
  _exports.IFCELEMENT = IFCELEMENT;
  var IFCELEMENTASSEMBLY = 4123344466;
  _exports.IFCELEMENTASSEMBLY = IFCELEMENTASSEMBLY;
  var IFCELEMENTASSEMBLYTYPE = 2397081782;
  _exports.IFCELEMENTASSEMBLYTYPE = IFCELEMENTASSEMBLYTYPE;
  var IFCELEMENTCOMPONENT = 1623761950;
  _exports.IFCELEMENTCOMPONENT = IFCELEMENTCOMPONENT;
  var IFCELEMENTCOMPONENTTYPE = 2590856083;
  _exports.IFCELEMENTCOMPONENTTYPE = IFCELEMENTCOMPONENTTYPE;
  var IFCELEMENTQUANTITY = 1883228015;
  _exports.IFCELEMENTQUANTITY = IFCELEMENTQUANTITY;
  var IFCELEMENTTYPE = 339256511;
  _exports.IFCELEMENTTYPE = IFCELEMENTTYPE;
  var IFCELEMENTARYSURFACE = 2777663545;
  _exports.IFCELEMENTARYSURFACE = IFCELEMENTARYSURFACE;
  var IFCELLIPSE = 1704287377;
  _exports.IFCELLIPSE = IFCELLIPSE;
  var IFCELLIPSEPROFILEDEF = 2835456948;
  _exports.IFCELLIPSEPROFILEDEF = IFCELLIPSEPROFILEDEF;
  var IFCENERGYCONVERSIONDEVICE = 1658829314;
  _exports.IFCENERGYCONVERSIONDEVICE = IFCENERGYCONVERSIONDEVICE;
  var IFCENERGYCONVERSIONDEVICETYPE = 2107101300;
  _exports.IFCENERGYCONVERSIONDEVICETYPE = IFCENERGYCONVERSIONDEVICETYPE;
  var IFCENGINE = 2814081492;
  _exports.IFCENGINE = IFCENGINE;
  var IFCENGINETYPE = 132023988;
  _exports.IFCENGINETYPE = IFCENGINETYPE;
  var IFCEVAPORATIVECOOLER = 3747195512;
  _exports.IFCEVAPORATIVECOOLER = IFCEVAPORATIVECOOLER;
  var IFCEVAPORATIVECOOLERTYPE = 3174744832;
  _exports.IFCEVAPORATIVECOOLERTYPE = IFCEVAPORATIVECOOLERTYPE;
  var IFCEVAPORATOR = 484807127;
  _exports.IFCEVAPORATOR = IFCEVAPORATOR;
  var IFCEVAPORATORTYPE = 3390157468;
  _exports.IFCEVAPORATORTYPE = IFCEVAPORATORTYPE;
  var IFCEVENT = 4148101412;
  _exports.IFCEVENT = IFCEVENT;
  var IFCEVENTTIME = 211053100;
  _exports.IFCEVENTTIME = IFCEVENTTIME;
  var IFCEVENTTYPE = 4024345920;
  _exports.IFCEVENTTYPE = IFCEVENTTYPE;
  var IFCEXTENDEDPROPERTIES = 297599258;
  _exports.IFCEXTENDEDPROPERTIES = IFCEXTENDEDPROPERTIES;
  var IFCEXTERNALINFORMATION = 4294318154;
  _exports.IFCEXTERNALINFORMATION = IFCEXTERNALINFORMATION;
  var IFCEXTERNALREFERENCE = 3200245327;
  _exports.IFCEXTERNALREFERENCE = IFCEXTERNALREFERENCE;
  var IFCEXTERNALREFERENCERELATIONSHIP = 1437805879;
  _exports.IFCEXTERNALREFERENCERELATIONSHIP = IFCEXTERNALREFERENCERELATIONSHIP;
  var IFCEXTERNALSPATIALELEMENT = 1209101575;
  _exports.IFCEXTERNALSPATIALELEMENT = IFCEXTERNALSPATIALELEMENT;
  var IFCEXTERNALSPATIALSTRUCTUREELEMENT = 2853485674;
  _exports.IFCEXTERNALSPATIALSTRUCTUREELEMENT = IFCEXTERNALSPATIALSTRUCTUREELEMENT;
  var IFCEXTERNALLYDEFINEDHATCHSTYLE = 2242383968;
  _exports.IFCEXTERNALLYDEFINEDHATCHSTYLE = IFCEXTERNALLYDEFINEDHATCHSTYLE;
  var IFCEXTERNALLYDEFINEDSURFACESTYLE = 1040185647;
  _exports.IFCEXTERNALLYDEFINEDSURFACESTYLE = IFCEXTERNALLYDEFINEDSURFACESTYLE;
  var IFCEXTERNALLYDEFINEDTEXTFONT = 3548104201;
  _exports.IFCEXTERNALLYDEFINEDTEXTFONT = IFCEXTERNALLYDEFINEDTEXTFONT;
  var IFCEXTRUDEDAREASOLID = 477187591;
  _exports.IFCEXTRUDEDAREASOLID = IFCEXTRUDEDAREASOLID;
  var IFCEXTRUDEDAREASOLIDTAPERED = 2804161546;
  _exports.IFCEXTRUDEDAREASOLIDTAPERED = IFCEXTRUDEDAREASOLIDTAPERED;
  var IFCFACE = 2556980723;
  _exports.IFCFACE = IFCFACE;
  var IFCFACEBASEDSURFACEMODEL = 2047409740;
  _exports.IFCFACEBASEDSURFACEMODEL = IFCFACEBASEDSURFACEMODEL;
  var IFCFACEBOUND = 1809719519;
  _exports.IFCFACEBOUND = IFCFACEBOUND;
  var IFCFACEOUTERBOUND = 803316827;
  _exports.IFCFACEOUTERBOUND = IFCFACEOUTERBOUND;
  var IFCFACESURFACE = 3008276851;
  _exports.IFCFACESURFACE = IFCFACESURFACE;
  var IFCFACETEDBREP = 807026263;
  _exports.IFCFACETEDBREP = IFCFACETEDBREP;
  var IFCFACETEDBREPWITHVOIDS = 3737207727;
  _exports.IFCFACETEDBREPWITHVOIDS = IFCFACETEDBREPWITHVOIDS;
  var IFCFACILITY = 24185140;
  _exports.IFCFACILITY = IFCFACILITY;
  var IFCFACILITYPART = 1310830890;
  _exports.IFCFACILITYPART = IFCFACILITYPART;
  var IFCFAILURECONNECTIONCONDITION = 4219587988;
  _exports.IFCFAILURECONNECTIONCONDITION = IFCFAILURECONNECTIONCONDITION;
  var IFCFAN = 3415622556;
  _exports.IFCFAN = IFCFAN;
  var IFCFANTYPE = 346874300;
  _exports.IFCFANTYPE = IFCFANTYPE;
  var IFCFASTENER = 647756555;
  _exports.IFCFASTENER = IFCFASTENER;
  var IFCFASTENERTYPE = 2489546625;
  _exports.IFCFASTENERTYPE = IFCFASTENERTYPE;
  var IFCFEATUREELEMENT = 2827207264;
  _exports.IFCFEATUREELEMENT = IFCFEATUREELEMENT;
  var IFCFEATUREELEMENTADDITION = 2143335405;
  _exports.IFCFEATUREELEMENTADDITION = IFCFEATUREELEMENTADDITION;
  var IFCFEATUREELEMENTSUBTRACTION = 1287392070;
  _exports.IFCFEATUREELEMENTSUBTRACTION = IFCFEATUREELEMENTSUBTRACTION;
  var IFCFILLAREASTYLE = 738692330;
  _exports.IFCFILLAREASTYLE = IFCFILLAREASTYLE;
  var IFCFILLAREASTYLEHATCHING = 374418227;
  _exports.IFCFILLAREASTYLEHATCHING = IFCFILLAREASTYLEHATCHING;
  var IFCFILLAREASTYLETILES = 315944413;
  _exports.IFCFILLAREASTYLETILES = IFCFILLAREASTYLETILES;
  var IFCFILTER = 819412036;
  _exports.IFCFILTER = IFCFILTER;
  var IFCFILTERTYPE = 1810631287;
  _exports.IFCFILTERTYPE = IFCFILTERTYPE;
  var IFCFIRESUPPRESSIONTERMINAL = 1426591983;
  _exports.IFCFIRESUPPRESSIONTERMINAL = IFCFIRESUPPRESSIONTERMINAL;
  var IFCFIRESUPPRESSIONTERMINALTYPE = 4222183408;
  _exports.IFCFIRESUPPRESSIONTERMINALTYPE = IFCFIRESUPPRESSIONTERMINALTYPE;
  var IFCFIXEDREFERENCESWEPTAREASOLID = 2652556860;
  _exports.IFCFIXEDREFERENCESWEPTAREASOLID = IFCFIXEDREFERENCESWEPTAREASOLID;
  var IFCFLOWCONTROLLER = 2058353004;
  _exports.IFCFLOWCONTROLLER = IFCFLOWCONTROLLER;
  var IFCFLOWCONTROLLERTYPE = 3907093117;
  _exports.IFCFLOWCONTROLLERTYPE = IFCFLOWCONTROLLERTYPE;
  var IFCFLOWFITTING = 4278956645;
  _exports.IFCFLOWFITTING = IFCFLOWFITTING;
  var IFCFLOWFITTINGTYPE = 3198132628;
  _exports.IFCFLOWFITTINGTYPE = IFCFLOWFITTINGTYPE;
  var IFCFLOWINSTRUMENT = 182646315;
  _exports.IFCFLOWINSTRUMENT = IFCFLOWINSTRUMENT;
  var IFCFLOWINSTRUMENTTYPE = 4037862832;
  _exports.IFCFLOWINSTRUMENTTYPE = IFCFLOWINSTRUMENTTYPE;
  var IFCFLOWMETER = 2188021234;
  _exports.IFCFLOWMETER = IFCFLOWMETER;
  var IFCFLOWMETERTYPE = 3815607619;
  _exports.IFCFLOWMETERTYPE = IFCFLOWMETERTYPE;
  var IFCFLOWMOVINGDEVICE = 3132237377;
  _exports.IFCFLOWMOVINGDEVICE = IFCFLOWMOVINGDEVICE;
  var IFCFLOWMOVINGDEVICETYPE = 1482959167;
  _exports.IFCFLOWMOVINGDEVICETYPE = IFCFLOWMOVINGDEVICETYPE;
  var IFCFLOWSEGMENT = 987401354;
  _exports.IFCFLOWSEGMENT = IFCFLOWSEGMENT;
  var IFCFLOWSEGMENTTYPE = 1834744321;
  _exports.IFCFLOWSEGMENTTYPE = IFCFLOWSEGMENTTYPE;
  var IFCFLOWSTORAGEDEVICE = 707683696;
  _exports.IFCFLOWSTORAGEDEVICE = IFCFLOWSTORAGEDEVICE;
  var IFCFLOWSTORAGEDEVICETYPE = 1339347760;
  _exports.IFCFLOWSTORAGEDEVICETYPE = IFCFLOWSTORAGEDEVICETYPE;
  var IFCFLOWTERMINAL = 2223149337;
  _exports.IFCFLOWTERMINAL = IFCFLOWTERMINAL;
  var IFCFLOWTERMINALTYPE = 2297155007;
  _exports.IFCFLOWTERMINALTYPE = IFCFLOWTERMINALTYPE;
  var IFCFLOWTREATMENTDEVICE = 3508470533;
  _exports.IFCFLOWTREATMENTDEVICE = IFCFLOWTREATMENTDEVICE;
  var IFCFLOWTREATMENTDEVICETYPE = 3009222698;
  _exports.IFCFLOWTREATMENTDEVICETYPE = IFCFLOWTREATMENTDEVICETYPE;
  var IFCFOOTING = 900683007;
  _exports.IFCFOOTING = IFCFOOTING;
  var IFCFOOTINGTYPE = 1893162501;
  _exports.IFCFOOTINGTYPE = IFCFOOTINGTYPE;
  var IFCFURNISHINGELEMENT = 263784265;
  _exports.IFCFURNISHINGELEMENT = IFCFURNISHINGELEMENT;
  var IFCFURNISHINGELEMENTTYPE = 4238390223;
  _exports.IFCFURNISHINGELEMENTTYPE = IFCFURNISHINGELEMENTTYPE;
  var IFCFURNITURE = 1509553395;
  _exports.IFCFURNITURE = IFCFURNITURE;
  var IFCFURNITURETYPE = 1268542332;
  _exports.IFCFURNITURETYPE = IFCFURNITURETYPE;
  var IFCGEOGRAPHICELEMENT = 3493046030;
  _exports.IFCGEOGRAPHICELEMENT = IFCGEOGRAPHICELEMENT;
  var IFCGEOGRAPHICELEMENTTYPE = 4095422895;
  _exports.IFCGEOGRAPHICELEMENTTYPE = IFCGEOGRAPHICELEMENTTYPE;
  var IFCGEOMETRICCURVESET = 987898635;
  _exports.IFCGEOMETRICCURVESET = IFCGEOMETRICCURVESET;
  var IFCGEOMETRICREPRESENTATIONCONTEXT = 3448662350;
  _exports.IFCGEOMETRICREPRESENTATIONCONTEXT = IFCGEOMETRICREPRESENTATIONCONTEXT;
  var IFCGEOMETRICREPRESENTATIONITEM = 2453401579;
  _exports.IFCGEOMETRICREPRESENTATIONITEM = IFCGEOMETRICREPRESENTATIONITEM;
  var IFCGEOMETRICREPRESENTATIONSUBCONTEXT = 4142052618;
  _exports.IFCGEOMETRICREPRESENTATIONSUBCONTEXT = IFCGEOMETRICREPRESENTATIONSUBCONTEXT;
  var IFCGEOMETRICSET = 3590301190;
  _exports.IFCGEOMETRICSET = IFCGEOMETRICSET;
  var IFCGRID = 3009204131;
  _exports.IFCGRID = IFCGRID;
  var IFCGRIDAXIS = 852622518;
  _exports.IFCGRIDAXIS = IFCGRIDAXIS;
  var IFCGRIDPLACEMENT = 178086475;
  _exports.IFCGRIDPLACEMENT = IFCGRIDPLACEMENT;
  var IFCGROUP = 2706460486;
  _exports.IFCGROUP = IFCGROUP;
  var IFCHALFSPACESOLID = 812098782;
  _exports.IFCHALFSPACESOLID = IFCHALFSPACESOLID;
  var IFCHEATEXCHANGER = 3319311131;
  _exports.IFCHEATEXCHANGER = IFCHEATEXCHANGER;
  var IFCHEATEXCHANGERTYPE = 1251058090;
  _exports.IFCHEATEXCHANGERTYPE = IFCHEATEXCHANGERTYPE;
  var IFCHUMIDIFIER = 2068733104;
  _exports.IFCHUMIDIFIER = IFCHUMIDIFIER;
  var IFCHUMIDIFIERTYPE = 1806887404;
  _exports.IFCHUMIDIFIERTYPE = IFCHUMIDIFIERTYPE;
  var IFCISHAPEPROFILEDEF = 1484403080;
  _exports.IFCISHAPEPROFILEDEF = IFCISHAPEPROFILEDEF;
  var IFCIMAGETEXTURE = 3905492369;
  _exports.IFCIMAGETEXTURE = IFCIMAGETEXTURE;
  var IFCINDEXEDCOLOURMAP = 3570813810;
  _exports.IFCINDEXEDCOLOURMAP = IFCINDEXEDCOLOURMAP;
  var IFCINDEXEDPOLYCURVE = 2571569899;
  _exports.IFCINDEXEDPOLYCURVE = IFCINDEXEDPOLYCURVE;
  var IFCINDEXEDPOLYGONALFACE = 178912537;
  _exports.IFCINDEXEDPOLYGONALFACE = IFCINDEXEDPOLYGONALFACE;
  var IFCINDEXEDPOLYGONALFACEWITHVOIDS = 2294589976;
  _exports.IFCINDEXEDPOLYGONALFACEWITHVOIDS = IFCINDEXEDPOLYGONALFACEWITHVOIDS;
  var IFCINDEXEDTEXTUREMAP = 1437953363;
  _exports.IFCINDEXEDTEXTUREMAP = IFCINDEXEDTEXTUREMAP;
  var IFCINDEXEDTRIANGLETEXTUREMAP = 2133299955;
  _exports.IFCINDEXEDTRIANGLETEXTUREMAP = IFCINDEXEDTRIANGLETEXTUREMAP;
  var IFCINTERCEPTOR = 4175244083;
  _exports.IFCINTERCEPTOR = IFCINTERCEPTOR;
  var IFCINTERCEPTORTYPE = 3946677679;
  _exports.IFCINTERCEPTORTYPE = IFCINTERCEPTORTYPE;
  var IFCINTERSECTIONCURVE = 3113134337;
  _exports.IFCINTERSECTIONCURVE = IFCINTERSECTIONCURVE;
  var IFCINVENTORY = 2391368822;
  _exports.IFCINVENTORY = IFCINVENTORY;
  var IFCIRREGULARTIMESERIES = 3741457305;
  _exports.IFCIRREGULARTIMESERIES = IFCIRREGULARTIMESERIES;
  var IFCIRREGULARTIMESERIESVALUE = 3020489413;
  _exports.IFCIRREGULARTIMESERIESVALUE = IFCIRREGULARTIMESERIESVALUE;
  var IFCJUNCTIONBOX = 2176052936;
  _exports.IFCJUNCTIONBOX = IFCJUNCTIONBOX;
  var IFCJUNCTIONBOXTYPE = 4288270099;
  _exports.IFCJUNCTIONBOXTYPE = IFCJUNCTIONBOXTYPE;
  var IFCLSHAPEPROFILEDEF = 572779678;
  _exports.IFCLSHAPEPROFILEDEF = IFCLSHAPEPROFILEDEF;
  var IFCLABORRESOURCE = 3827777499;
  _exports.IFCLABORRESOURCE = IFCLABORRESOURCE;
  var IFCLABORRESOURCETYPE = 428585644;
  _exports.IFCLABORRESOURCETYPE = IFCLABORRESOURCETYPE;
  var IFCLAGTIME = 1585845231;
  _exports.IFCLAGTIME = IFCLAGTIME;
  var IFCLAMP = 76236018;
  _exports.IFCLAMP = IFCLAMP;
  var IFCLAMPTYPE = 1051575348;
  _exports.IFCLAMPTYPE = IFCLAMPTYPE;
  var IFCLIBRARYINFORMATION = 2655187982;
  _exports.IFCLIBRARYINFORMATION = IFCLIBRARYINFORMATION;
  var IFCLIBRARYREFERENCE = 3452421091;
  _exports.IFCLIBRARYREFERENCE = IFCLIBRARYREFERENCE;
  var IFCLIGHTDISTRIBUTIONDATA = 4162380809;
  _exports.IFCLIGHTDISTRIBUTIONDATA = IFCLIGHTDISTRIBUTIONDATA;
  var IFCLIGHTFIXTURE = 629592764;
  _exports.IFCLIGHTFIXTURE = IFCLIGHTFIXTURE;
  var IFCLIGHTFIXTURETYPE = 1161773419;
  _exports.IFCLIGHTFIXTURETYPE = IFCLIGHTFIXTURETYPE;
  var IFCLIGHTINTENSITYDISTRIBUTION = 1566485204;
  _exports.IFCLIGHTINTENSITYDISTRIBUTION = IFCLIGHTINTENSITYDISTRIBUTION;
  var IFCLIGHTSOURCE = 1402838566;
  _exports.IFCLIGHTSOURCE = IFCLIGHTSOURCE;
  var IFCLIGHTSOURCEAMBIENT = 125510826;
  _exports.IFCLIGHTSOURCEAMBIENT = IFCLIGHTSOURCEAMBIENT;
  var IFCLIGHTSOURCEDIRECTIONAL = 2604431987;
  _exports.IFCLIGHTSOURCEDIRECTIONAL = IFCLIGHTSOURCEDIRECTIONAL;
  var IFCLIGHTSOURCEGONIOMETRIC = 4266656042;
  _exports.IFCLIGHTSOURCEGONIOMETRIC = IFCLIGHTSOURCEGONIOMETRIC;
  var IFCLIGHTSOURCEPOSITIONAL = 1520743889;
  _exports.IFCLIGHTSOURCEPOSITIONAL = IFCLIGHTSOURCEPOSITIONAL;
  var IFCLIGHTSOURCESPOT = 3422422726;
  _exports.IFCLIGHTSOURCESPOT = IFCLIGHTSOURCESPOT;
  var IFCLINE = 1281925730;
  _exports.IFCLINE = IFCLINE;
  var IFCLINESEGMENT2D = 3092502836;
  _exports.IFCLINESEGMENT2D = IFCLINESEGMENT2D;
  var IFCLINEARPLACEMENT = 388784114;
  _exports.IFCLINEARPLACEMENT = IFCLINEARPLACEMENT;
  var IFCLINEARPOSITIONINGELEMENT = 1154579445;
  _exports.IFCLINEARPOSITIONINGELEMENT = IFCLINEARPOSITIONINGELEMENT;
  var IFCLOCALPLACEMENT = 2624227202;
  _exports.IFCLOCALPLACEMENT = IFCLOCALPLACEMENT;
  var IFCLOOP = 1008929658;
  _exports.IFCLOOP = IFCLOOP;
  var IFCMANIFOLDSOLIDBREP = 1425443689;
  _exports.IFCMANIFOLDSOLIDBREP = IFCMANIFOLDSOLIDBREP;
  var IFCMAPCONVERSION = 3057273783;
  _exports.IFCMAPCONVERSION = IFCMAPCONVERSION;
  var IFCMAPPEDITEM = 2347385850;
  _exports.IFCMAPPEDITEM = IFCMAPPEDITEM;
  var IFCMATERIAL = 1838606355;
  _exports.IFCMATERIAL = IFCMATERIAL;
  var IFCMATERIALCLASSIFICATIONRELATIONSHIP = 1847130766;
  _exports.IFCMATERIALCLASSIFICATIONRELATIONSHIP = IFCMATERIALCLASSIFICATIONRELATIONSHIP;
  var IFCMATERIALCONSTITUENT = 3708119e3;
  _exports.IFCMATERIALCONSTITUENT = IFCMATERIALCONSTITUENT;
  var IFCMATERIALCONSTITUENTSET = 2852063980;
  _exports.IFCMATERIALCONSTITUENTSET = IFCMATERIALCONSTITUENTSET;
  var IFCMATERIALDEFINITION = 760658860;
  _exports.IFCMATERIALDEFINITION = IFCMATERIALDEFINITION;
  var IFCMATERIALDEFINITIONREPRESENTATION = 2022407955;
  _exports.IFCMATERIALDEFINITIONREPRESENTATION = IFCMATERIALDEFINITIONREPRESENTATION;
  var IFCMATERIALLAYER = 248100487;
  _exports.IFCMATERIALLAYER = IFCMATERIALLAYER;
  var IFCMATERIALLAYERSET = 3303938423;
  _exports.IFCMATERIALLAYERSET = IFCMATERIALLAYERSET;
  var IFCMATERIALLAYERSETUSAGE = 1303795690;
  _exports.IFCMATERIALLAYERSETUSAGE = IFCMATERIALLAYERSETUSAGE;
  var IFCMATERIALLAYERWITHOFFSETS = 1847252529;
  _exports.IFCMATERIALLAYERWITHOFFSETS = IFCMATERIALLAYERWITHOFFSETS;
  var IFCMATERIALLIST = 2199411900;
  _exports.IFCMATERIALLIST = IFCMATERIALLIST;
  var IFCMATERIALPROFILE = 2235152071;
  _exports.IFCMATERIALPROFILE = IFCMATERIALPROFILE;
  var IFCMATERIALPROFILESET = 164193824;
  _exports.IFCMATERIALPROFILESET = IFCMATERIALPROFILESET;
  var IFCMATERIALPROFILESETUSAGE = 3079605661;
  _exports.IFCMATERIALPROFILESETUSAGE = IFCMATERIALPROFILESETUSAGE;
  var IFCMATERIALPROFILESETUSAGETAPERING = 3404854881;
  _exports.IFCMATERIALPROFILESETUSAGETAPERING = IFCMATERIALPROFILESETUSAGETAPERING;
  var IFCMATERIALPROFILEWITHOFFSETS = 552965576;
  _exports.IFCMATERIALPROFILEWITHOFFSETS = IFCMATERIALPROFILEWITHOFFSETS;
  var IFCMATERIALPROPERTIES = 3265635763;
  _exports.IFCMATERIALPROPERTIES = IFCMATERIALPROPERTIES;
  var IFCMATERIALRELATIONSHIP = 853536259;
  _exports.IFCMATERIALRELATIONSHIP = IFCMATERIALRELATIONSHIP;
  var IFCMATERIALUSAGEDEFINITION = 1507914824;
  _exports.IFCMATERIALUSAGEDEFINITION = IFCMATERIALUSAGEDEFINITION;
  var IFCMEASUREWITHUNIT = 2597039031;
  _exports.IFCMEASUREWITHUNIT = IFCMEASUREWITHUNIT;
  var IFCMECHANICALFASTENER = 377706215;
  _exports.IFCMECHANICALFASTENER = IFCMECHANICALFASTENER;
  var IFCMECHANICALFASTENERTYPE = 2108223431;
  _exports.IFCMECHANICALFASTENERTYPE = IFCMECHANICALFASTENERTYPE;
  var IFCMEDICALDEVICE = 1437502449;
  _exports.IFCMEDICALDEVICE = IFCMEDICALDEVICE;
  var IFCMEDICALDEVICETYPE = 1114901282;
  _exports.IFCMEDICALDEVICETYPE = IFCMEDICALDEVICETYPE;
  var IFCMEMBER = 1073191201;
  _exports.IFCMEMBER = IFCMEMBER;
  var IFCMEMBERSTANDARDCASE = 1911478936;
  _exports.IFCMEMBERSTANDARDCASE = IFCMEMBERSTANDARDCASE;
  var IFCMEMBERTYPE = 3181161470;
  _exports.IFCMEMBERTYPE = IFCMEMBERTYPE;
  var IFCMETRIC = 3368373690;
  _exports.IFCMETRIC = IFCMETRIC;
  var IFCMIRROREDPROFILEDEF = 2998442950;
  _exports.IFCMIRROREDPROFILEDEF = IFCMIRROREDPROFILEDEF;
  var IFCMONETARYUNIT = 2706619895;
  _exports.IFCMONETARYUNIT = IFCMONETARYUNIT;
  var IFCMOTORCONNECTION = 2474470126;
  _exports.IFCMOTORCONNECTION = IFCMOTORCONNECTION;
  var IFCMOTORCONNECTIONTYPE = 977012517;
  _exports.IFCMOTORCONNECTIONTYPE = IFCMOTORCONNECTIONTYPE;
  var IFCNAMEDUNIT = 1918398963;
  _exports.IFCNAMEDUNIT = IFCNAMEDUNIT;
  var IFCOBJECT = 3888040117;
  _exports.IFCOBJECT = IFCOBJECT;
  var IFCOBJECTDEFINITION = 219451334;
  _exports.IFCOBJECTDEFINITION = IFCOBJECTDEFINITION;
  var IFCOBJECTPLACEMENT = 3701648758;
  _exports.IFCOBJECTPLACEMENT = IFCOBJECTPLACEMENT;
  var IFCOBJECTIVE = 2251480897;
  _exports.IFCOBJECTIVE = IFCOBJECTIVE;
  var IFCOCCUPANT = 4143007308;
  _exports.IFCOCCUPANT = IFCOCCUPANT;
  var IFCOFFSETCURVE = 590820931;
  _exports.IFCOFFSETCURVE = IFCOFFSETCURVE;
  var IFCOFFSETCURVE2D = 3388369263;
  _exports.IFCOFFSETCURVE2D = IFCOFFSETCURVE2D;
  var IFCOFFSETCURVE3D = 3505215534;
  _exports.IFCOFFSETCURVE3D = IFCOFFSETCURVE3D;
  var IFCOFFSETCURVEBYDISTANCES = 2485787929;
  _exports.IFCOFFSETCURVEBYDISTANCES = IFCOFFSETCURVEBYDISTANCES;
  var IFCOPENSHELL = 2665983363;
  _exports.IFCOPENSHELL = IFCOPENSHELL;
  var IFCOPENINGELEMENT = 3588315303;
  _exports.IFCOPENINGELEMENT = IFCOPENINGELEMENT;
  var IFCOPENINGSTANDARDCASE = 3079942009;
  _exports.IFCOPENINGSTANDARDCASE = IFCOPENINGSTANDARDCASE;
  var IFCORGANIZATION = 4251960020;
  _exports.IFCORGANIZATION = IFCORGANIZATION;
  var IFCORGANIZATIONRELATIONSHIP = 1411181986;
  _exports.IFCORGANIZATIONRELATIONSHIP = IFCORGANIZATIONRELATIONSHIP;
  var IFCORIENTATIONEXPRESSION = 643959842;
  _exports.IFCORIENTATIONEXPRESSION = IFCORIENTATIONEXPRESSION;
  var IFCORIENTEDEDGE = 1029017970;
  _exports.IFCORIENTEDEDGE = IFCORIENTEDEDGE;
  var IFCOUTERBOUNDARYCURVE = 144952367;
  _exports.IFCOUTERBOUNDARYCURVE = IFCOUTERBOUNDARYCURVE;
  var IFCOUTLET = 3694346114;
  _exports.IFCOUTLET = IFCOUTLET;
  var IFCOUTLETTYPE = 2837617999;
  _exports.IFCOUTLETTYPE = IFCOUTLETTYPE;
  var IFCOWNERHISTORY = 1207048766;
  _exports.IFCOWNERHISTORY = IFCOWNERHISTORY;
  var IFCPARAMETERIZEDPROFILEDEF = 2529465313;
  _exports.IFCPARAMETERIZEDPROFILEDEF = IFCPARAMETERIZEDPROFILEDEF;
  var IFCPATH = 2519244187;
  _exports.IFCPATH = IFCPATH;
  var IFCPCURVE = 1682466193;
  _exports.IFCPCURVE = IFCPCURVE;
  var IFCPERFORMANCEHISTORY = 2382730787;
  _exports.IFCPERFORMANCEHISTORY = IFCPERFORMANCEHISTORY;
  var IFCPERMEABLECOVERINGPROPERTIES = 3566463478;
  _exports.IFCPERMEABLECOVERINGPROPERTIES = IFCPERMEABLECOVERINGPROPERTIES;
  var IFCPERMIT = 3327091369;
  _exports.IFCPERMIT = IFCPERMIT;
  var IFCPERSON = 2077209135;
  _exports.IFCPERSON = IFCPERSON;
  var IFCPERSONANDORGANIZATION = 101040310;
  _exports.IFCPERSONANDORGANIZATION = IFCPERSONANDORGANIZATION;
  var IFCPHYSICALCOMPLEXQUANTITY = 3021840470;
  _exports.IFCPHYSICALCOMPLEXQUANTITY = IFCPHYSICALCOMPLEXQUANTITY;
  var IFCPHYSICALQUANTITY = 2483315170;
  _exports.IFCPHYSICALQUANTITY = IFCPHYSICALQUANTITY;
  var IFCPHYSICALSIMPLEQUANTITY = 2226359599;
  _exports.IFCPHYSICALSIMPLEQUANTITY = IFCPHYSICALSIMPLEQUANTITY;
  var IFCPILE = 1687234759;
  _exports.IFCPILE = IFCPILE;
  var IFCPILETYPE = 1158309216;
  _exports.IFCPILETYPE = IFCPILETYPE;
  var IFCPIPEFITTING = 310824031;
  _exports.IFCPIPEFITTING = IFCPIPEFITTING;
  var IFCPIPEFITTINGTYPE = 804291784;
  _exports.IFCPIPEFITTINGTYPE = IFCPIPEFITTINGTYPE;
  var IFCPIPESEGMENT = 3612865200;
  _exports.IFCPIPESEGMENT = IFCPIPESEGMENT;
  var IFCPIPESEGMENTTYPE = 4231323485;
  _exports.IFCPIPESEGMENTTYPE = IFCPIPESEGMENTTYPE;
  var IFCPIXELTEXTURE = 597895409;
  _exports.IFCPIXELTEXTURE = IFCPIXELTEXTURE;
  var IFCPLACEMENT = 2004835150;
  _exports.IFCPLACEMENT = IFCPLACEMENT;
  var IFCPLANARBOX = 603570806;
  _exports.IFCPLANARBOX = IFCPLANARBOX;
  var IFCPLANAREXTENT = 1663979128;
  _exports.IFCPLANAREXTENT = IFCPLANAREXTENT;
  var IFCPLANE = 220341763;
  _exports.IFCPLANE = IFCPLANE;
  var IFCPLATE = 3171933400;
  _exports.IFCPLATE = IFCPLATE;
  var IFCPLATESTANDARDCASE = 1156407060;
  _exports.IFCPLATESTANDARDCASE = IFCPLATESTANDARDCASE;
  var IFCPLATETYPE = 4017108033;
  _exports.IFCPLATETYPE = IFCPLATETYPE;
  var IFCPOINT = 2067069095;
  _exports.IFCPOINT = IFCPOINT;
  var IFCPOINTONCURVE = 4022376103;
  _exports.IFCPOINTONCURVE = IFCPOINTONCURVE;
  var IFCPOINTONSURFACE = 1423911732;
  _exports.IFCPOINTONSURFACE = IFCPOINTONSURFACE;
  var IFCPOLYLOOP = 2924175390;
  _exports.IFCPOLYLOOP = IFCPOLYLOOP;
  var IFCPOLYGONALBOUNDEDHALFSPACE = 2775532180;
  _exports.IFCPOLYGONALBOUNDEDHALFSPACE = IFCPOLYGONALBOUNDEDHALFSPACE;
  var IFCPOLYGONALFACESET = 2839578677;
  _exports.IFCPOLYGONALFACESET = IFCPOLYGONALFACESET;
  var IFCPOLYLINE = 3724593414;
  _exports.IFCPOLYLINE = IFCPOLYLINE;
  var IFCPORT = 3740093272;
  _exports.IFCPORT = IFCPORT;
  var IFCPOSITIONINGELEMENT = 1946335990;
  _exports.IFCPOSITIONINGELEMENT = IFCPOSITIONINGELEMENT;
  var IFCPOSTALADDRESS = 3355820592;
  _exports.IFCPOSTALADDRESS = IFCPOSTALADDRESS;
  var IFCPREDEFINEDCOLOUR = 759155922;
  _exports.IFCPREDEFINEDCOLOUR = IFCPREDEFINEDCOLOUR;
  var IFCPREDEFINEDCURVEFONT = 2559016684;
  _exports.IFCPREDEFINEDCURVEFONT = IFCPREDEFINEDCURVEFONT;
  var IFCPREDEFINEDITEM = 3727388367;
  _exports.IFCPREDEFINEDITEM = IFCPREDEFINEDITEM;
  var IFCPREDEFINEDPROPERTIES = 3778827333;
  _exports.IFCPREDEFINEDPROPERTIES = IFCPREDEFINEDPROPERTIES;
  var IFCPREDEFINEDPROPERTYSET = 3967405729;
  _exports.IFCPREDEFINEDPROPERTYSET = IFCPREDEFINEDPROPERTYSET;
  var IFCPREDEFINEDTEXTFONT = 1775413392;
  _exports.IFCPREDEFINEDTEXTFONT = IFCPREDEFINEDTEXTFONT;
  var IFCPRESENTATIONITEM = 677532197;
  _exports.IFCPRESENTATIONITEM = IFCPRESENTATIONITEM;
  var IFCPRESENTATIONLAYERASSIGNMENT = 2022622350;
  _exports.IFCPRESENTATIONLAYERASSIGNMENT = IFCPRESENTATIONLAYERASSIGNMENT;
  var IFCPRESENTATIONLAYERWITHSTYLE = 1304840413;
  _exports.IFCPRESENTATIONLAYERWITHSTYLE = IFCPRESENTATIONLAYERWITHSTYLE;
  var IFCPRESENTATIONSTYLE = 3119450353;
  _exports.IFCPRESENTATIONSTYLE = IFCPRESENTATIONSTYLE;
  var IFCPRESENTATIONSTYLEASSIGNMENT = 2417041796;
  _exports.IFCPRESENTATIONSTYLEASSIGNMENT = IFCPRESENTATIONSTYLEASSIGNMENT;
  var IFCPROCEDURE = 2744685151;
  _exports.IFCPROCEDURE = IFCPROCEDURE;
  var IFCPROCEDURETYPE = 569719735;
  _exports.IFCPROCEDURETYPE = IFCPROCEDURETYPE;
  var IFCPROCESS = 2945172077;
  _exports.IFCPROCESS = IFCPROCESS;
  var IFCPRODUCT = 4208778838;
  _exports.IFCPRODUCT = IFCPRODUCT;
  var IFCPRODUCTDEFINITIONSHAPE = 673634403;
  _exports.IFCPRODUCTDEFINITIONSHAPE = IFCPRODUCTDEFINITIONSHAPE;
  var IFCPRODUCTREPRESENTATION = 2095639259;
  _exports.IFCPRODUCTREPRESENTATION = IFCPRODUCTREPRESENTATION;
  var IFCPROFILEDEF = 3958567839;
  _exports.IFCPROFILEDEF = IFCPROFILEDEF;
  var IFCPROFILEPROPERTIES = 2802850158;
  _exports.IFCPROFILEPROPERTIES = IFCPROFILEPROPERTIES;
  var IFCPROJECT = 103090709;
  _exports.IFCPROJECT = IFCPROJECT;
  var IFCPROJECTLIBRARY = 653396225;
  _exports.IFCPROJECTLIBRARY = IFCPROJECTLIBRARY;
  var IFCPROJECTORDER = 2904328755;
  _exports.IFCPROJECTORDER = IFCPROJECTORDER;
  var IFCPROJECTEDCRS = 3843373140;
  _exports.IFCPROJECTEDCRS = IFCPROJECTEDCRS;
  var IFCPROJECTIONELEMENT = 3651124850;
  _exports.IFCPROJECTIONELEMENT = IFCPROJECTIONELEMENT;
  var IFCPROPERTY = 2598011224;
  _exports.IFCPROPERTY = IFCPROPERTY;
  var IFCPROPERTYABSTRACTION = 986844984;
  _exports.IFCPROPERTYABSTRACTION = IFCPROPERTYABSTRACTION;
  var IFCPROPERTYBOUNDEDVALUE = 871118103;
  _exports.IFCPROPERTYBOUNDEDVALUE = IFCPROPERTYBOUNDEDVALUE;
  var IFCPROPERTYDEFINITION = 1680319473;
  _exports.IFCPROPERTYDEFINITION = IFCPROPERTYDEFINITION;
  var IFCPROPERTYDEPENDENCYRELATIONSHIP = 148025276;
  _exports.IFCPROPERTYDEPENDENCYRELATIONSHIP = IFCPROPERTYDEPENDENCYRELATIONSHIP;
  var IFCPROPERTYENUMERATEDVALUE = 4166981789;
  _exports.IFCPROPERTYENUMERATEDVALUE = IFCPROPERTYENUMERATEDVALUE;
  var IFCPROPERTYENUMERATION = 3710013099;
  _exports.IFCPROPERTYENUMERATION = IFCPROPERTYENUMERATION;
  var IFCPROPERTYLISTVALUE = 2752243245;
  _exports.IFCPROPERTYLISTVALUE = IFCPROPERTYLISTVALUE;
  var IFCPROPERTYREFERENCEVALUE = 941946838;
  _exports.IFCPROPERTYREFERENCEVALUE = IFCPROPERTYREFERENCEVALUE;
  var IFCPROPERTYSET = 1451395588;
  _exports.IFCPROPERTYSET = IFCPROPERTYSET;
  var IFCPROPERTYSETDEFINITION = 3357820518;
  _exports.IFCPROPERTYSETDEFINITION = IFCPROPERTYSETDEFINITION;
  var IFCPROPERTYSETTEMPLATE = 492091185;
  _exports.IFCPROPERTYSETTEMPLATE = IFCPROPERTYSETTEMPLATE;
  var IFCPROPERTYSINGLEVALUE = 3650150729;
  _exports.IFCPROPERTYSINGLEVALUE = IFCPROPERTYSINGLEVALUE;
  var IFCPROPERTYTABLEVALUE = 110355661;
  _exports.IFCPROPERTYTABLEVALUE = IFCPROPERTYTABLEVALUE;
  var IFCPROPERTYTEMPLATE = 3521284610;
  _exports.IFCPROPERTYTEMPLATE = IFCPROPERTYTEMPLATE;
  var IFCPROPERTYTEMPLATEDEFINITION = 1482703590;
  _exports.IFCPROPERTYTEMPLATEDEFINITION = IFCPROPERTYTEMPLATEDEFINITION;
  var IFCPROTECTIVEDEVICE = 738039164;
  _exports.IFCPROTECTIVEDEVICE = IFCPROTECTIVEDEVICE;
  var IFCPROTECTIVEDEVICETRIPPINGUNIT = 2295281155;
  _exports.IFCPROTECTIVEDEVICETRIPPINGUNIT = IFCPROTECTIVEDEVICETRIPPINGUNIT;
  var IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = 655969474;
  _exports.IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = IFCPROTECTIVEDEVICETRIPPINGUNITTYPE;
  var IFCPROTECTIVEDEVICETYPE = 1842657554;
  _exports.IFCPROTECTIVEDEVICETYPE = IFCPROTECTIVEDEVICETYPE;
  var IFCPROXY = 3219374653;
  _exports.IFCPROXY = IFCPROXY;
  var IFCPUMP = 90941305;
  _exports.IFCPUMP = IFCPUMP;
  var IFCPUMPTYPE = 2250791053;
  _exports.IFCPUMPTYPE = IFCPUMPTYPE;
  var IFCQUANTITYAREA = 2044713172;
  _exports.IFCQUANTITYAREA = IFCQUANTITYAREA;
  var IFCQUANTITYCOUNT = 2093928680;
  _exports.IFCQUANTITYCOUNT = IFCQUANTITYCOUNT;
  var IFCQUANTITYLENGTH = 931644368;
  _exports.IFCQUANTITYLENGTH = IFCQUANTITYLENGTH;
  var IFCQUANTITYSET = 2090586900;
  _exports.IFCQUANTITYSET = IFCQUANTITYSET;
  var IFCQUANTITYTIME = 3252649465;
  _exports.IFCQUANTITYTIME = IFCQUANTITYTIME;
  var IFCQUANTITYVOLUME = 2405470396;
  _exports.IFCQUANTITYVOLUME = IFCQUANTITYVOLUME;
  var IFCQUANTITYWEIGHT = 825690147;
  _exports.IFCQUANTITYWEIGHT = IFCQUANTITYWEIGHT;
  var IFCRAILING = 2262370178;
  _exports.IFCRAILING = IFCRAILING;
  var IFCRAILINGTYPE = 2893384427;
  _exports.IFCRAILINGTYPE = IFCRAILINGTYPE;
  var IFCRAMP = 3024970846;
  _exports.IFCRAMP = IFCRAMP;
  var IFCRAMPFLIGHT = 3283111854;
  _exports.IFCRAMPFLIGHT = IFCRAMPFLIGHT;
  var IFCRAMPFLIGHTTYPE = 2324767716;
  _exports.IFCRAMPFLIGHTTYPE = IFCRAMPFLIGHTTYPE;
  var IFCRAMPTYPE = 1469900589;
  _exports.IFCRAMPTYPE = IFCRAMPTYPE;
  var IFCRATIONALBSPLINECURVEWITHKNOTS = 1232101972;
  _exports.IFCRATIONALBSPLINECURVEWITHKNOTS = IFCRATIONALBSPLINECURVEWITHKNOTS;
  var IFCRATIONALBSPLINESURFACEWITHKNOTS = 683857671;
  _exports.IFCRATIONALBSPLINESURFACEWITHKNOTS = IFCRATIONALBSPLINESURFACEWITHKNOTS;
  var IFCRECTANGLEHOLLOWPROFILEDEF = 2770003689;
  _exports.IFCRECTANGLEHOLLOWPROFILEDEF = IFCRECTANGLEHOLLOWPROFILEDEF;
  var IFCRECTANGLEPROFILEDEF = 3615266464;
  _exports.IFCRECTANGLEPROFILEDEF = IFCRECTANGLEPROFILEDEF;
  var IFCRECTANGULARPYRAMID = 2798486643;
  _exports.IFCRECTANGULARPYRAMID = IFCRECTANGULARPYRAMID;
  var IFCRECTANGULARTRIMMEDSURFACE = 3454111270;
  _exports.IFCRECTANGULARTRIMMEDSURFACE = IFCRECTANGULARTRIMMEDSURFACE;
  var IFCRECURRENCEPATTERN = 3915482550;
  _exports.IFCRECURRENCEPATTERN = IFCRECURRENCEPATTERN;
  var IFCREFERENCE = 2433181523;
  _exports.IFCREFERENCE = IFCREFERENCE;
  var IFCREFERENT = 4021432810;
  _exports.IFCREFERENT = IFCREFERENT;
  var IFCREGULARTIMESERIES = 3413951693;
  _exports.IFCREGULARTIMESERIES = IFCREGULARTIMESERIES;
  var IFCREINFORCEMENTBARPROPERTIES = 1580146022;
  _exports.IFCREINFORCEMENTBARPROPERTIES = IFCREINFORCEMENTBARPROPERTIES;
  var IFCREINFORCEMENTDEFINITIONPROPERTIES = 3765753017;
  _exports.IFCREINFORCEMENTDEFINITIONPROPERTIES = IFCREINFORCEMENTDEFINITIONPROPERTIES;
  var IFCREINFORCINGBAR = 979691226;
  _exports.IFCREINFORCINGBAR = IFCREINFORCINGBAR;
  var IFCREINFORCINGBARTYPE = 2572171363;
  _exports.IFCREINFORCINGBARTYPE = IFCREINFORCINGBARTYPE;
  var IFCREINFORCINGELEMENT = 3027567501;
  _exports.IFCREINFORCINGELEMENT = IFCREINFORCINGELEMENT;
  var IFCREINFORCINGELEMENTTYPE = 964333572;
  _exports.IFCREINFORCINGELEMENTTYPE = IFCREINFORCINGELEMENTTYPE;
  var IFCREINFORCINGMESH = 2320036040;
  _exports.IFCREINFORCINGMESH = IFCREINFORCINGMESH;
  var IFCREINFORCINGMESHTYPE = 2310774935;
  _exports.IFCREINFORCINGMESHTYPE = IFCREINFORCINGMESHTYPE;
  var IFCRELAGGREGATES = 160246688;
  _exports.IFCRELAGGREGATES = IFCRELAGGREGATES;
  var IFCRELASSIGNS = 3939117080;
  _exports.IFCRELASSIGNS = IFCRELASSIGNS;
  var IFCRELASSIGNSTOACTOR = 1683148259;
  _exports.IFCRELASSIGNSTOACTOR = IFCRELASSIGNSTOACTOR;
  var IFCRELASSIGNSTOCONTROL = 2495723537;
  _exports.IFCRELASSIGNSTOCONTROL = IFCRELASSIGNSTOCONTROL;
  var IFCRELASSIGNSTOGROUP = 1307041759;
  _exports.IFCRELASSIGNSTOGROUP = IFCRELASSIGNSTOGROUP;
  var IFCRELASSIGNSTOGROUPBYFACTOR = 1027710054;
  _exports.IFCRELASSIGNSTOGROUPBYFACTOR = IFCRELASSIGNSTOGROUPBYFACTOR;
  var IFCRELASSIGNSTOPROCESS = 4278684876;
  _exports.IFCRELASSIGNSTOPROCESS = IFCRELASSIGNSTOPROCESS;
  var IFCRELASSIGNSTOPRODUCT = 2857406711;
  _exports.IFCRELASSIGNSTOPRODUCT = IFCRELASSIGNSTOPRODUCT;
  var IFCRELASSIGNSTORESOURCE = 205026976;
  _exports.IFCRELASSIGNSTORESOURCE = IFCRELASSIGNSTORESOURCE;
  var IFCRELASSOCIATES = 1865459582;
  _exports.IFCRELASSOCIATES = IFCRELASSOCIATES;
  var IFCRELASSOCIATESAPPROVAL = 4095574036;
  _exports.IFCRELASSOCIATESAPPROVAL = IFCRELASSOCIATESAPPROVAL;
  var IFCRELASSOCIATESCLASSIFICATION = 919958153;
  _exports.IFCRELASSOCIATESCLASSIFICATION = IFCRELASSOCIATESCLASSIFICATION;
  var IFCRELASSOCIATESCONSTRAINT = 2728634034;
  _exports.IFCRELASSOCIATESCONSTRAINT = IFCRELASSOCIATESCONSTRAINT;
  var IFCRELASSOCIATESDOCUMENT = 982818633;
  _exports.IFCRELASSOCIATESDOCUMENT = IFCRELASSOCIATESDOCUMENT;
  var IFCRELASSOCIATESLIBRARY = 3840914261;
  _exports.IFCRELASSOCIATESLIBRARY = IFCRELASSOCIATESLIBRARY;
  var IFCRELASSOCIATESMATERIAL = 2655215786;
  _exports.IFCRELASSOCIATESMATERIAL = IFCRELASSOCIATESMATERIAL;
  var IFCRELCONNECTS = 826625072;
  _exports.IFCRELCONNECTS = IFCRELCONNECTS;
  var IFCRELCONNECTSELEMENTS = 1204542856;
  _exports.IFCRELCONNECTSELEMENTS = IFCRELCONNECTSELEMENTS;
  var IFCRELCONNECTSPATHELEMENTS = 3945020480;
  _exports.IFCRELCONNECTSPATHELEMENTS = IFCRELCONNECTSPATHELEMENTS;
  var IFCRELCONNECTSPORTTOELEMENT = 4201705270;
  _exports.IFCRELCONNECTSPORTTOELEMENT = IFCRELCONNECTSPORTTOELEMENT;
  var IFCRELCONNECTSPORTS = 3190031847;
  _exports.IFCRELCONNECTSPORTS = IFCRELCONNECTSPORTS;
  var IFCRELCONNECTSSTRUCTURALACTIVITY = 2127690289;
  _exports.IFCRELCONNECTSSTRUCTURALACTIVITY = IFCRELCONNECTSSTRUCTURALACTIVITY;
  var IFCRELCONNECTSSTRUCTURALMEMBER = 1638771189;
  _exports.IFCRELCONNECTSSTRUCTURALMEMBER = IFCRELCONNECTSSTRUCTURALMEMBER;
  var IFCRELCONNECTSWITHECCENTRICITY = 504942748;
  _exports.IFCRELCONNECTSWITHECCENTRICITY = IFCRELCONNECTSWITHECCENTRICITY;
  var IFCRELCONNECTSWITHREALIZINGELEMENTS = 3678494232;
  _exports.IFCRELCONNECTSWITHREALIZINGELEMENTS = IFCRELCONNECTSWITHREALIZINGELEMENTS;
  var IFCRELCONTAINEDINSPATIALSTRUCTURE = 3242617779;
  _exports.IFCRELCONTAINEDINSPATIALSTRUCTURE = IFCRELCONTAINEDINSPATIALSTRUCTURE;
  var IFCRELCOVERSBLDGELEMENTS = 886880790;
  _exports.IFCRELCOVERSBLDGELEMENTS = IFCRELCOVERSBLDGELEMENTS;
  var IFCRELCOVERSSPACES = 2802773753;
  _exports.IFCRELCOVERSSPACES = IFCRELCOVERSSPACES;
  var IFCRELDECLARES = 2565941209;
  _exports.IFCRELDECLARES = IFCRELDECLARES;
  var IFCRELDECOMPOSES = 2551354335;
  _exports.IFCRELDECOMPOSES = IFCRELDECOMPOSES;
  var IFCRELDEFINES = 693640335;
  _exports.IFCRELDEFINES = IFCRELDEFINES;
  var IFCRELDEFINESBYOBJECT = 1462361463;
  _exports.IFCRELDEFINESBYOBJECT = IFCRELDEFINESBYOBJECT;
  var IFCRELDEFINESBYPROPERTIES = 4186316022;
  _exports.IFCRELDEFINESBYPROPERTIES = IFCRELDEFINESBYPROPERTIES;
  var IFCRELDEFINESBYTEMPLATE = 307848117;
  _exports.IFCRELDEFINESBYTEMPLATE = IFCRELDEFINESBYTEMPLATE;
  var IFCRELDEFINESBYTYPE = 781010003;
  _exports.IFCRELDEFINESBYTYPE = IFCRELDEFINESBYTYPE;
  var IFCRELFILLSELEMENT = 3940055652;
  _exports.IFCRELFILLSELEMENT = IFCRELFILLSELEMENT;
  var IFCRELFLOWCONTROLELEMENTS = 279856033;
  _exports.IFCRELFLOWCONTROLELEMENTS = IFCRELFLOWCONTROLELEMENTS;
  var IFCRELINTERFERESELEMENTS = 427948657;
  _exports.IFCRELINTERFERESELEMENTS = IFCRELINTERFERESELEMENTS;
  var IFCRELNESTS = 3268803585;
  _exports.IFCRELNESTS = IFCRELNESTS;
  var IFCRELPOSITIONS = 1441486842;
  _exports.IFCRELPOSITIONS = IFCRELPOSITIONS;
  var IFCRELPROJECTSELEMENT = 750771296;
  _exports.IFCRELPROJECTSELEMENT = IFCRELPROJECTSELEMENT;
  var IFCRELREFERENCEDINSPATIALSTRUCTURE = 1245217292;
  _exports.IFCRELREFERENCEDINSPATIALSTRUCTURE = IFCRELREFERENCEDINSPATIALSTRUCTURE;
  var IFCRELSEQUENCE = 4122056220;
  _exports.IFCRELSEQUENCE = IFCRELSEQUENCE;
  var IFCRELSERVICESBUILDINGS = 366585022;
  _exports.IFCRELSERVICESBUILDINGS = IFCRELSERVICESBUILDINGS;
  var IFCRELSPACEBOUNDARY = 3451746338;
  _exports.IFCRELSPACEBOUNDARY = IFCRELSPACEBOUNDARY;
  var IFCRELSPACEBOUNDARY1STLEVEL = 3523091289;
  _exports.IFCRELSPACEBOUNDARY1STLEVEL = IFCRELSPACEBOUNDARY1STLEVEL;
  var IFCRELSPACEBOUNDARY2NDLEVEL = 1521410863;
  _exports.IFCRELSPACEBOUNDARY2NDLEVEL = IFCRELSPACEBOUNDARY2NDLEVEL;
  var IFCRELVOIDSELEMENT = 1401173127;
  _exports.IFCRELVOIDSELEMENT = IFCRELVOIDSELEMENT;
  var IFCRELATIONSHIP = 478536968;
  _exports.IFCRELATIONSHIP = IFCRELATIONSHIP;
  var IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = 816062949;
  _exports.IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = IFCREPARAMETRISEDCOMPOSITECURVESEGMENT;
  var IFCREPRESENTATION = 1076942058;
  _exports.IFCREPRESENTATION = IFCREPRESENTATION;
  var IFCREPRESENTATIONCONTEXT = 3377609919;
  _exports.IFCREPRESENTATIONCONTEXT = IFCREPRESENTATIONCONTEXT;
  var IFCREPRESENTATIONITEM = 3008791417;
  _exports.IFCREPRESENTATIONITEM = IFCREPRESENTATIONITEM;
  var IFCREPRESENTATIONMAP = 1660063152;
  _exports.IFCREPRESENTATIONMAP = IFCREPRESENTATIONMAP;
  var IFCRESOURCE = 2914609552;
  _exports.IFCRESOURCE = IFCRESOURCE;
  var IFCRESOURCEAPPROVALRELATIONSHIP = 2943643501;
  _exports.IFCRESOURCEAPPROVALRELATIONSHIP = IFCRESOURCEAPPROVALRELATIONSHIP;
  var IFCRESOURCECONSTRAINTRELATIONSHIP = 1608871552;
  _exports.IFCRESOURCECONSTRAINTRELATIONSHIP = IFCRESOURCECONSTRAINTRELATIONSHIP;
  var IFCRESOURCELEVELRELATIONSHIP = 2439245199;
  _exports.IFCRESOURCELEVELRELATIONSHIP = IFCRESOURCELEVELRELATIONSHIP;
  var IFCRESOURCETIME = 1042787934;
  _exports.IFCRESOURCETIME = IFCRESOURCETIME;
  var IFCREVOLVEDAREASOLID = 1856042241;
  _exports.IFCREVOLVEDAREASOLID = IFCREVOLVEDAREASOLID;
  var IFCREVOLVEDAREASOLIDTAPERED = 3243963512;
  _exports.IFCREVOLVEDAREASOLIDTAPERED = IFCREVOLVEDAREASOLIDTAPERED;
  var IFCRIGHTCIRCULARCONE = 4158566097;
  _exports.IFCRIGHTCIRCULARCONE = IFCRIGHTCIRCULARCONE;
  var IFCRIGHTCIRCULARCYLINDER = 3626867408;
  _exports.IFCRIGHTCIRCULARCYLINDER = IFCRIGHTCIRCULARCYLINDER;
  var IFCROOF = 2016517767;
  _exports.IFCROOF = IFCROOF;
  var IFCROOFTYPE = 2781568857;
  _exports.IFCROOFTYPE = IFCROOFTYPE;
  var IFCROOT = 2341007311;
  _exports.IFCROOT = IFCROOT;
  var IFCROUNDEDRECTANGLEPROFILEDEF = 2778083089;
  _exports.IFCROUNDEDRECTANGLEPROFILEDEF = IFCROUNDEDRECTANGLEPROFILEDEF;
  var IFCSIUNIT = 448429030;
  _exports.IFCSIUNIT = IFCSIUNIT;
  var IFCSANITARYTERMINAL = 3053780830;
  _exports.IFCSANITARYTERMINAL = IFCSANITARYTERMINAL;
  var IFCSANITARYTERMINALTYPE = 1768891740;
  _exports.IFCSANITARYTERMINALTYPE = IFCSANITARYTERMINALTYPE;
  var IFCSCHEDULINGTIME = 1054537805;
  _exports.IFCSCHEDULINGTIME = IFCSCHEDULINGTIME;
  var IFCSEAMCURVE = 2157484638;
  _exports.IFCSEAMCURVE = IFCSEAMCURVE;
  var IFCSECTIONPROPERTIES = 2042790032;
  _exports.IFCSECTIONPROPERTIES = IFCSECTIONPROPERTIES;
  var IFCSECTIONREINFORCEMENTPROPERTIES = 4165799628;
  _exports.IFCSECTIONREINFORCEMENTPROPERTIES = IFCSECTIONREINFORCEMENTPROPERTIES;
  var IFCSECTIONEDSOLID = 1862484736;
  _exports.IFCSECTIONEDSOLID = IFCSECTIONEDSOLID;
  var IFCSECTIONEDSOLIDHORIZONTAL = 1290935644;
  _exports.IFCSECTIONEDSOLIDHORIZONTAL = IFCSECTIONEDSOLIDHORIZONTAL;
  var IFCSECTIONEDSPINE = 1509187699;
  _exports.IFCSECTIONEDSPINE = IFCSECTIONEDSPINE;
  var IFCSENSOR = 4086658281;
  _exports.IFCSENSOR = IFCSENSOR;
  var IFCSENSORTYPE = 1783015770;
  _exports.IFCSENSORTYPE = IFCSENSORTYPE;
  var IFCSHADINGDEVICE = 1329646415;
  _exports.IFCSHADINGDEVICE = IFCSHADINGDEVICE;
  var IFCSHADINGDEVICETYPE = 4074543187;
  _exports.IFCSHADINGDEVICETYPE = IFCSHADINGDEVICETYPE;
  var IFCSHAPEASPECT = 867548509;
  _exports.IFCSHAPEASPECT = IFCSHAPEASPECT;
  var IFCSHAPEMODEL = 3982875396;
  _exports.IFCSHAPEMODEL = IFCSHAPEMODEL;
  var IFCSHAPEREPRESENTATION = 4240577450;
  _exports.IFCSHAPEREPRESENTATION = IFCSHAPEREPRESENTATION;
  var IFCSHELLBASEDSURFACEMODEL = 4124623270;
  _exports.IFCSHELLBASEDSURFACEMODEL = IFCSHELLBASEDSURFACEMODEL;
  var IFCSIMPLEPROPERTY = 3692461612;
  _exports.IFCSIMPLEPROPERTY = IFCSIMPLEPROPERTY;
  var IFCSIMPLEPROPERTYTEMPLATE = 3663146110;
  _exports.IFCSIMPLEPROPERTYTEMPLATE = IFCSIMPLEPROPERTYTEMPLATE;
  var IFCSITE = 4097777520;
  _exports.IFCSITE = IFCSITE;
  var IFCSLAB = 1529196076;
  _exports.IFCSLAB = IFCSLAB;
  var IFCSLABELEMENTEDCASE = 3127900445;
  _exports.IFCSLABELEMENTEDCASE = IFCSLABELEMENTEDCASE;
  var IFCSLABSTANDARDCASE = 3027962421;
  _exports.IFCSLABSTANDARDCASE = IFCSLABSTANDARDCASE;
  var IFCSLABTYPE = 2533589738;
  _exports.IFCSLABTYPE = IFCSLABTYPE;
  var IFCSLIPPAGECONNECTIONCONDITION = 2609359061;
  _exports.IFCSLIPPAGECONNECTIONCONDITION = IFCSLIPPAGECONNECTIONCONDITION;
  var IFCSOLARDEVICE = 3420628829;
  _exports.IFCSOLARDEVICE = IFCSOLARDEVICE;
  var IFCSOLARDEVICETYPE = 1072016465;
  _exports.IFCSOLARDEVICETYPE = IFCSOLARDEVICETYPE;
  var IFCSOLIDMODEL = 723233188;
  _exports.IFCSOLIDMODEL = IFCSOLIDMODEL;
  var IFCSPACE = 3856911033;
  _exports.IFCSPACE = IFCSPACE;
  var IFCSPACEHEATER = 1999602285;
  _exports.IFCSPACEHEATER = IFCSPACEHEATER;
  var IFCSPACEHEATERTYPE = 1305183839;
  _exports.IFCSPACEHEATERTYPE = IFCSPACEHEATERTYPE;
  var IFCSPACETYPE = 3812236995;
  _exports.IFCSPACETYPE = IFCSPACETYPE;
  var IFCSPATIALELEMENT = 1412071761;
  _exports.IFCSPATIALELEMENT = IFCSPATIALELEMENT;
  var IFCSPATIALELEMENTTYPE = 710998568;
  _exports.IFCSPATIALELEMENTTYPE = IFCSPATIALELEMENTTYPE;
  var IFCSPATIALSTRUCTUREELEMENT = 2706606064;
  _exports.IFCSPATIALSTRUCTUREELEMENT = IFCSPATIALSTRUCTUREELEMENT;
  var IFCSPATIALSTRUCTUREELEMENTTYPE = 3893378262;
  _exports.IFCSPATIALSTRUCTUREELEMENTTYPE = IFCSPATIALSTRUCTUREELEMENTTYPE;
  var IFCSPATIALZONE = 463610769;
  _exports.IFCSPATIALZONE = IFCSPATIALZONE;
  var IFCSPATIALZONETYPE = 2481509218;
  _exports.IFCSPATIALZONETYPE = IFCSPATIALZONETYPE;
  var IFCSPHERE = 451544542;
  _exports.IFCSPHERE = IFCSPHERE;
  var IFCSPHERICALSURFACE = 4015995234;
  _exports.IFCSPHERICALSURFACE = IFCSPHERICALSURFACE;
  var IFCSTACKTERMINAL = 1404847402;
  _exports.IFCSTACKTERMINAL = IFCSTACKTERMINAL;
  var IFCSTACKTERMINALTYPE = 3112655638;
  _exports.IFCSTACKTERMINALTYPE = IFCSTACKTERMINALTYPE;
  var IFCSTAIR = 331165859;
  _exports.IFCSTAIR = IFCSTAIR;
  var IFCSTAIRFLIGHT = 4252922144;
  _exports.IFCSTAIRFLIGHT = IFCSTAIRFLIGHT;
  var IFCSTAIRFLIGHTTYPE = 1039846685;
  _exports.IFCSTAIRFLIGHTTYPE = IFCSTAIRFLIGHTTYPE;
  var IFCSTAIRTYPE = 338393293;
  _exports.IFCSTAIRTYPE = IFCSTAIRTYPE;
  var IFCSTRUCTURALACTION = 682877961;
  _exports.IFCSTRUCTURALACTION = IFCSTRUCTURALACTION;
  var IFCSTRUCTURALACTIVITY = 3544373492;
  _exports.IFCSTRUCTURALACTIVITY = IFCSTRUCTURALACTIVITY;
  var IFCSTRUCTURALANALYSISMODEL = 2515109513;
  _exports.IFCSTRUCTURALANALYSISMODEL = IFCSTRUCTURALANALYSISMODEL;
  var IFCSTRUCTURALCONNECTION = 1179482911;
  _exports.IFCSTRUCTURALCONNECTION = IFCSTRUCTURALCONNECTION;
  var IFCSTRUCTURALCONNECTIONCONDITION = 2273995522;
  _exports.IFCSTRUCTURALCONNECTIONCONDITION = IFCSTRUCTURALCONNECTIONCONDITION;
  var IFCSTRUCTURALCURVEACTION = 1004757350;
  _exports.IFCSTRUCTURALCURVEACTION = IFCSTRUCTURALCURVEACTION;
  var IFCSTRUCTURALCURVECONNECTION = 4243806635;
  _exports.IFCSTRUCTURALCURVECONNECTION = IFCSTRUCTURALCURVECONNECTION;
  var IFCSTRUCTURALCURVEMEMBER = 214636428;
  _exports.IFCSTRUCTURALCURVEMEMBER = IFCSTRUCTURALCURVEMEMBER;
  var IFCSTRUCTURALCURVEMEMBERVARYING = 2445595289;
  _exports.IFCSTRUCTURALCURVEMEMBERVARYING = IFCSTRUCTURALCURVEMEMBERVARYING;
  var IFCSTRUCTURALCURVEREACTION = 2757150158;
  _exports.IFCSTRUCTURALCURVEREACTION = IFCSTRUCTURALCURVEREACTION;
  var IFCSTRUCTURALITEM = 3136571912;
  _exports.IFCSTRUCTURALITEM = IFCSTRUCTURALITEM;
  var IFCSTRUCTURALLINEARACTION = 1807405624;
  _exports.IFCSTRUCTURALLINEARACTION = IFCSTRUCTURALLINEARACTION;
  var IFCSTRUCTURALLOAD = 2162789131;
  _exports.IFCSTRUCTURALLOAD = IFCSTRUCTURALLOAD;
  var IFCSTRUCTURALLOADCASE = 385403989;
  _exports.IFCSTRUCTURALLOADCASE = IFCSTRUCTURALLOADCASE;
  var IFCSTRUCTURALLOADCONFIGURATION = 3478079324;
  _exports.IFCSTRUCTURALLOADCONFIGURATION = IFCSTRUCTURALLOADCONFIGURATION;
  var IFCSTRUCTURALLOADGROUP = 1252848954;
  _exports.IFCSTRUCTURALLOADGROUP = IFCSTRUCTURALLOADGROUP;
  var IFCSTRUCTURALLOADLINEARFORCE = 1595516126;
  _exports.IFCSTRUCTURALLOADLINEARFORCE = IFCSTRUCTURALLOADLINEARFORCE;
  var IFCSTRUCTURALLOADORRESULT = 609421318;
  _exports.IFCSTRUCTURALLOADORRESULT = IFCSTRUCTURALLOADORRESULT;
  var IFCSTRUCTURALLOADPLANARFORCE = 2668620305;
  _exports.IFCSTRUCTURALLOADPLANARFORCE = IFCSTRUCTURALLOADPLANARFORCE;
  var IFCSTRUCTURALLOADSINGLEDISPLACEMENT = 2473145415;
  _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENT = IFCSTRUCTURALLOADSINGLEDISPLACEMENT;
  var IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = 1973038258;
  _exports.IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION;
  var IFCSTRUCTURALLOADSINGLEFORCE = 1597423693;
  _exports.IFCSTRUCTURALLOADSINGLEFORCE = IFCSTRUCTURALLOADSINGLEFORCE;
  var IFCSTRUCTURALLOADSINGLEFORCEWARPING = 1190533807;
  _exports.IFCSTRUCTURALLOADSINGLEFORCEWARPING = IFCSTRUCTURALLOADSINGLEFORCEWARPING;
  var IFCSTRUCTURALLOADSTATIC = 2525727697;
  _exports.IFCSTRUCTURALLOADSTATIC = IFCSTRUCTURALLOADSTATIC;
  var IFCSTRUCTURALLOADTEMPERATURE = 3408363356;
  _exports.IFCSTRUCTURALLOADTEMPERATURE = IFCSTRUCTURALLOADTEMPERATURE;
  var IFCSTRUCTURALMEMBER = 530289379;
  _exports.IFCSTRUCTURALMEMBER = IFCSTRUCTURALMEMBER;
  var IFCSTRUCTURALPLANARACTION = 1621171031;
  _exports.IFCSTRUCTURALPLANARACTION = IFCSTRUCTURALPLANARACTION;
  var IFCSTRUCTURALPOINTACTION = 2082059205;
  _exports.IFCSTRUCTURALPOINTACTION = IFCSTRUCTURALPOINTACTION;
  var IFCSTRUCTURALPOINTCONNECTION = 734778138;
  _exports.IFCSTRUCTURALPOINTCONNECTION = IFCSTRUCTURALPOINTCONNECTION;
  var IFCSTRUCTURALPOINTREACTION = 1235345126;
  _exports.IFCSTRUCTURALPOINTREACTION = IFCSTRUCTURALPOINTREACTION;
  var IFCSTRUCTURALREACTION = 3689010777;
  _exports.IFCSTRUCTURALREACTION = IFCSTRUCTURALREACTION;
  var IFCSTRUCTURALRESULTGROUP = 2986769608;
  _exports.IFCSTRUCTURALRESULTGROUP = IFCSTRUCTURALRESULTGROUP;
  var IFCSTRUCTURALSURFACEACTION = 3657597509;
  _exports.IFCSTRUCTURALSURFACEACTION = IFCSTRUCTURALSURFACEACTION;
  var IFCSTRUCTURALSURFACECONNECTION = 1975003073;
  _exports.IFCSTRUCTURALSURFACECONNECTION = IFCSTRUCTURALSURFACECONNECTION;
  var IFCSTRUCTURALSURFACEMEMBER = 3979015343;
  _exports.IFCSTRUCTURALSURFACEMEMBER = IFCSTRUCTURALSURFACEMEMBER;
  var IFCSTRUCTURALSURFACEMEMBERVARYING = 2218152070;
  _exports.IFCSTRUCTURALSURFACEMEMBERVARYING = IFCSTRUCTURALSURFACEMEMBERVARYING;
  var IFCSTRUCTURALSURFACEREACTION = 603775116;
  _exports.IFCSTRUCTURALSURFACEREACTION = IFCSTRUCTURALSURFACEREACTION;
  var IFCSTYLEMODEL = 2830218821;
  _exports.IFCSTYLEMODEL = IFCSTYLEMODEL;
  var IFCSTYLEDITEM = 3958052878;
  _exports.IFCSTYLEDITEM = IFCSTYLEDITEM;
  var IFCSTYLEDREPRESENTATION = 3049322572;
  _exports.IFCSTYLEDREPRESENTATION = IFCSTYLEDREPRESENTATION;
  var IFCSUBCONTRACTRESOURCE = 148013059;
  _exports.IFCSUBCONTRACTRESOURCE = IFCSUBCONTRACTRESOURCE;
  var IFCSUBCONTRACTRESOURCETYPE = 4095615324;
  _exports.IFCSUBCONTRACTRESOURCETYPE = IFCSUBCONTRACTRESOURCETYPE;
  var IFCSUBEDGE = 2233826070;
  _exports.IFCSUBEDGE = IFCSUBEDGE;
  var IFCSURFACE = 2513912981;
  _exports.IFCSURFACE = IFCSURFACE;
  var IFCSURFACECURVE = 699246055;
  _exports.IFCSURFACECURVE = IFCSURFACECURVE;
  var IFCSURFACECURVESWEPTAREASOLID = 2028607225;
  _exports.IFCSURFACECURVESWEPTAREASOLID = IFCSURFACECURVESWEPTAREASOLID;
  var IFCSURFACEFEATURE = 3101698114;
  _exports.IFCSURFACEFEATURE = IFCSURFACEFEATURE;
  var IFCSURFACEOFLINEAREXTRUSION = 2809605785;
  _exports.IFCSURFACEOFLINEAREXTRUSION = IFCSURFACEOFLINEAREXTRUSION;
  var IFCSURFACEOFREVOLUTION = 4124788165;
  _exports.IFCSURFACEOFREVOLUTION = IFCSURFACEOFREVOLUTION;
  var IFCSURFACEREINFORCEMENTAREA = 2934153892;
  _exports.IFCSURFACEREINFORCEMENTAREA = IFCSURFACEREINFORCEMENTAREA;
  var IFCSURFACESTYLE = 1300840506;
  _exports.IFCSURFACESTYLE = IFCSURFACESTYLE;
  var IFCSURFACESTYLELIGHTING = 3303107099;
  _exports.IFCSURFACESTYLELIGHTING = IFCSURFACESTYLELIGHTING;
  var IFCSURFACESTYLEREFRACTION = 1607154358;
  _exports.IFCSURFACESTYLEREFRACTION = IFCSURFACESTYLEREFRACTION;
  var IFCSURFACESTYLERENDERING = 1878645084;
  _exports.IFCSURFACESTYLERENDERING = IFCSURFACESTYLERENDERING;
  var IFCSURFACESTYLESHADING = 846575682;
  _exports.IFCSURFACESTYLESHADING = IFCSURFACESTYLESHADING;
  var IFCSURFACESTYLEWITHTEXTURES = 1351298697;
  _exports.IFCSURFACESTYLEWITHTEXTURES = IFCSURFACESTYLEWITHTEXTURES;
  var IFCSURFACETEXTURE = 626085974;
  _exports.IFCSURFACETEXTURE = IFCSURFACETEXTURE;
  var IFCSWEPTAREASOLID = 2247615214;
  _exports.IFCSWEPTAREASOLID = IFCSWEPTAREASOLID;
  var IFCSWEPTDISKSOLID = 1260650574;
  _exports.IFCSWEPTDISKSOLID = IFCSWEPTDISKSOLID;
  var IFCSWEPTDISKSOLIDPOLYGONAL = 1096409881;
  _exports.IFCSWEPTDISKSOLIDPOLYGONAL = IFCSWEPTDISKSOLIDPOLYGONAL;
  var IFCSWEPTSURFACE = 230924584;
  _exports.IFCSWEPTSURFACE = IFCSWEPTSURFACE;
  var IFCSWITCHINGDEVICE = 1162798199;
  _exports.IFCSWITCHINGDEVICE = IFCSWITCHINGDEVICE;
  var IFCSWITCHINGDEVICETYPE = 2315554128;
  _exports.IFCSWITCHINGDEVICETYPE = IFCSWITCHINGDEVICETYPE;
  var IFCSYSTEM = 2254336722;
  _exports.IFCSYSTEM = IFCSYSTEM;
  var IFCSYSTEMFURNITUREELEMENT = 413509423;
  _exports.IFCSYSTEMFURNITUREELEMENT = IFCSYSTEMFURNITUREELEMENT;
  var IFCSYSTEMFURNITUREELEMENTTYPE = 1580310250;
  _exports.IFCSYSTEMFURNITUREELEMENTTYPE = IFCSYSTEMFURNITUREELEMENTTYPE;
  var IFCTSHAPEPROFILEDEF = 3071757647;
  _exports.IFCTSHAPEPROFILEDEF = IFCTSHAPEPROFILEDEF;
  var IFCTABLE = 985171141;
  _exports.IFCTABLE = IFCTABLE;
  var IFCTABLECOLUMN = 2043862942;
  _exports.IFCTABLECOLUMN = IFCTABLECOLUMN;
  var IFCTABLEROW = 531007025;
  _exports.IFCTABLEROW = IFCTABLEROW;
  var IFCTANK = 812556717;
  _exports.IFCTANK = IFCTANK;
  var IFCTANKTYPE = 5716631;
  _exports.IFCTANKTYPE = IFCTANKTYPE;
  var IFCTASK = 3473067441;
  _exports.IFCTASK = IFCTASK;
  var IFCTASKTIME = 1549132990;
  _exports.IFCTASKTIME = IFCTASKTIME;
  var IFCTASKTIMERECURRING = 2771591690;
  _exports.IFCTASKTIMERECURRING = IFCTASKTIMERECURRING;
  var IFCTASKTYPE = 3206491090;
  _exports.IFCTASKTYPE = IFCTASKTYPE;
  var IFCTELECOMADDRESS = 912023232;
  _exports.IFCTELECOMADDRESS = IFCTELECOMADDRESS;
  var IFCTENDON = 3824725483;
  _exports.IFCTENDON = IFCTENDON;
  var IFCTENDONANCHOR = 2347447852;
  _exports.IFCTENDONANCHOR = IFCTENDONANCHOR;
  var IFCTENDONANCHORTYPE = 3081323446;
  _exports.IFCTENDONANCHORTYPE = IFCTENDONANCHORTYPE;
  var IFCTENDONCONDUIT = 3663046924;
  _exports.IFCTENDONCONDUIT = IFCTENDONCONDUIT;
  var IFCTENDONCONDUITTYPE = 2281632017;
  _exports.IFCTENDONCONDUITTYPE = IFCTENDONCONDUITTYPE;
  var IFCTENDONTYPE = 2415094496;
  _exports.IFCTENDONTYPE = IFCTENDONTYPE;
  var IFCTESSELLATEDFACESET = 2387106220;
  _exports.IFCTESSELLATEDFACESET = IFCTESSELLATEDFACESET;
  var IFCTESSELLATEDITEM = 901063453;
  _exports.IFCTESSELLATEDITEM = IFCTESSELLATEDITEM;
  var IFCTEXTLITERAL = 4282788508;
  _exports.IFCTEXTLITERAL = IFCTEXTLITERAL;
  var IFCTEXTLITERALWITHEXTENT = 3124975700;
  _exports.IFCTEXTLITERALWITHEXTENT = IFCTEXTLITERALWITHEXTENT;
  var IFCTEXTSTYLE = 1447204868;
  _exports.IFCTEXTSTYLE = IFCTEXTSTYLE;
  var IFCTEXTSTYLEFONTMODEL = 1983826977;
  _exports.IFCTEXTSTYLEFONTMODEL = IFCTEXTSTYLEFONTMODEL;
  var IFCTEXTSTYLEFORDEFINEDFONT = 2636378356;
  _exports.IFCTEXTSTYLEFORDEFINEDFONT = IFCTEXTSTYLEFORDEFINEDFONT;
  var IFCTEXTSTYLETEXTMODEL = 1640371178;
  _exports.IFCTEXTSTYLETEXTMODEL = IFCTEXTSTYLETEXTMODEL;
  var IFCTEXTURECOORDINATE = 280115917;
  _exports.IFCTEXTURECOORDINATE = IFCTEXTURECOORDINATE;
  var IFCTEXTURECOORDINATEGENERATOR = 1742049831;
  _exports.IFCTEXTURECOORDINATEGENERATOR = IFCTEXTURECOORDINATEGENERATOR;
  var IFCTEXTUREMAP = 2552916305;
  _exports.IFCTEXTUREMAP = IFCTEXTUREMAP;
  var IFCTEXTUREVERTEX = 1210645708;
  _exports.IFCTEXTUREVERTEX = IFCTEXTUREVERTEX;
  var IFCTEXTUREVERTEXLIST = 3611470254;
  _exports.IFCTEXTUREVERTEXLIST = IFCTEXTUREVERTEXLIST;
  var IFCTIMEPERIOD = 1199560280;
  _exports.IFCTIMEPERIOD = IFCTIMEPERIOD;
  var IFCTIMESERIES = 3101149627;
  _exports.IFCTIMESERIES = IFCTIMESERIES;
  var IFCTIMESERIESVALUE = 581633288;
  _exports.IFCTIMESERIESVALUE = IFCTIMESERIESVALUE;
  var IFCTOPOLOGICALREPRESENTATIONITEM = 1377556343;
  _exports.IFCTOPOLOGICALREPRESENTATIONITEM = IFCTOPOLOGICALREPRESENTATIONITEM;
  var IFCTOPOLOGYREPRESENTATION = 1735638870;
  _exports.IFCTOPOLOGYREPRESENTATION = IFCTOPOLOGYREPRESENTATION;
  var IFCTOROIDALSURFACE = 1935646853;
  _exports.IFCTOROIDALSURFACE = IFCTOROIDALSURFACE;
  var IFCTRANSFORMER = 3825984169;
  _exports.IFCTRANSFORMER = IFCTRANSFORMER;
  var IFCTRANSFORMERTYPE = 1692211062;
  _exports.IFCTRANSFORMERTYPE = IFCTRANSFORMERTYPE;
  var IFCTRANSITIONCURVESEGMENT2D = 2595432518;
  _exports.IFCTRANSITIONCURVESEGMENT2D = IFCTRANSITIONCURVESEGMENT2D;
  var IFCTRANSPORTELEMENT = 1620046519;
  _exports.IFCTRANSPORTELEMENT = IFCTRANSPORTELEMENT;
  var IFCTRANSPORTELEMENTTYPE = 2097647324;
  _exports.IFCTRANSPORTELEMENTTYPE = IFCTRANSPORTELEMENTTYPE;
  var IFCTRAPEZIUMPROFILEDEF = 2715220739;
  _exports.IFCTRAPEZIUMPROFILEDEF = IFCTRAPEZIUMPROFILEDEF;
  var IFCTRIANGULATEDFACESET = 2916149573;
  _exports.IFCTRIANGULATEDFACESET = IFCTRIANGULATEDFACESET;
  var IFCTRIANGULATEDIRREGULARNETWORK = 1229763772;
  _exports.IFCTRIANGULATEDIRREGULARNETWORK = IFCTRIANGULATEDIRREGULARNETWORK;
  var IFCTRIMMEDCURVE = 3593883385;
  _exports.IFCTRIMMEDCURVE = IFCTRIMMEDCURVE;
  var IFCTUBEBUNDLE = 3026737570;
  _exports.IFCTUBEBUNDLE = IFCTUBEBUNDLE;
  var IFCTUBEBUNDLETYPE = 1600972822;
  _exports.IFCTUBEBUNDLETYPE = IFCTUBEBUNDLETYPE;
  var IFCTYPEOBJECT = 1628702193;
  _exports.IFCTYPEOBJECT = IFCTYPEOBJECT;
  var IFCTYPEPROCESS = 3736923433;
  _exports.IFCTYPEPROCESS = IFCTYPEPROCESS;
  var IFCTYPEPRODUCT = 2347495698;
  _exports.IFCTYPEPRODUCT = IFCTYPEPRODUCT;
  var IFCTYPERESOURCE = 3698973494;
  _exports.IFCTYPERESOURCE = IFCTYPERESOURCE;
  var IFCUSHAPEPROFILEDEF = 427810014;
  _exports.IFCUSHAPEPROFILEDEF = IFCUSHAPEPROFILEDEF;
  var IFCUNITASSIGNMENT = 180925521;
  _exports.IFCUNITASSIGNMENT = IFCUNITASSIGNMENT;
  var IFCUNITARYCONTROLELEMENT = 630975310;
  _exports.IFCUNITARYCONTROLELEMENT = IFCUNITARYCONTROLELEMENT;
  var IFCUNITARYCONTROLELEMENTTYPE = 3179687236;
  _exports.IFCUNITARYCONTROLELEMENTTYPE = IFCUNITARYCONTROLELEMENTTYPE;
  var IFCUNITARYEQUIPMENT = 4292641817;
  _exports.IFCUNITARYEQUIPMENT = IFCUNITARYEQUIPMENT;
  var IFCUNITARYEQUIPMENTTYPE = 1911125066;
  _exports.IFCUNITARYEQUIPMENTTYPE = IFCUNITARYEQUIPMENTTYPE;
  var IFCVALVE = 4207607924;
  _exports.IFCVALVE = IFCVALVE;
  var IFCVALVETYPE = 728799441;
  _exports.IFCVALVETYPE = IFCVALVETYPE;
  var IFCVECTOR = 1417489154;
  _exports.IFCVECTOR = IFCVECTOR;
  var IFCVERTEX = 2799835756;
  _exports.IFCVERTEX = IFCVERTEX;
  var IFCVERTEXLOOP = 2759199220;
  _exports.IFCVERTEXLOOP = IFCVERTEXLOOP;
  var IFCVERTEXPOINT = 1907098498;
  _exports.IFCVERTEXPOINT = IFCVERTEXPOINT;
  var IFCVIBRATIONDAMPER = 1530820697;
  _exports.IFCVIBRATIONDAMPER = IFCVIBRATIONDAMPER;
  var IFCVIBRATIONDAMPERTYPE = 3956297820;
  _exports.IFCVIBRATIONDAMPERTYPE = IFCVIBRATIONDAMPERTYPE;
  var IFCVIBRATIONISOLATOR = 2391383451;
  _exports.IFCVIBRATIONISOLATOR = IFCVIBRATIONISOLATOR;
  var IFCVIBRATIONISOLATORTYPE = 3313531582;
  _exports.IFCVIBRATIONISOLATORTYPE = IFCVIBRATIONISOLATORTYPE;
  var IFCVIRTUALELEMENT = 2769231204;
  _exports.IFCVIRTUALELEMENT = IFCVIRTUALELEMENT;
  var IFCVIRTUALGRIDINTERSECTION = 891718957;
  _exports.IFCVIRTUALGRIDINTERSECTION = IFCVIRTUALGRIDINTERSECTION;
  var IFCVOIDINGFEATURE = 926996030;
  _exports.IFCVOIDINGFEATURE = IFCVOIDINGFEATURE;
  var IFCWALL = 2391406946;
  _exports.IFCWALL = IFCWALL;
  var IFCWALLELEMENTEDCASE = 4156078855;
  _exports.IFCWALLELEMENTEDCASE = IFCWALLELEMENTEDCASE;
  var IFCWALLSTANDARDCASE = 3512223829;
  _exports.IFCWALLSTANDARDCASE = IFCWALLSTANDARDCASE;
  var IFCWALLTYPE = 1898987631;
  _exports.IFCWALLTYPE = IFCWALLTYPE;
  var IFCWASTETERMINAL = 4237592921;
  _exports.IFCWASTETERMINAL = IFCWASTETERMINAL;
  var IFCWASTETERMINALTYPE = 1133259667;
  _exports.IFCWASTETERMINALTYPE = IFCWASTETERMINALTYPE;
  var IFCWINDOW = 3304561284;
  _exports.IFCWINDOW = IFCWINDOW;
  var IFCWINDOWLININGPROPERTIES = 336235671;
  _exports.IFCWINDOWLININGPROPERTIES = IFCWINDOWLININGPROPERTIES;
  var IFCWINDOWPANELPROPERTIES = 512836454;
  _exports.IFCWINDOWPANELPROPERTIES = IFCWINDOWPANELPROPERTIES;
  var IFCWINDOWSTANDARDCASE = 486154966;
  _exports.IFCWINDOWSTANDARDCASE = IFCWINDOWSTANDARDCASE;
  var IFCWINDOWSTYLE = 1299126871;
  _exports.IFCWINDOWSTYLE = IFCWINDOWSTYLE;
  var IFCWINDOWTYPE = 4009809668;
  _exports.IFCWINDOWTYPE = IFCWINDOWTYPE;
  var IFCWORKCALENDAR = 4088093105;
  _exports.IFCWORKCALENDAR = IFCWORKCALENDAR;
  var IFCWORKCONTROL = 1028945134;
  _exports.IFCWORKCONTROL = IFCWORKCONTROL;
  var IFCWORKPLAN = 4218914973;
  _exports.IFCWORKPLAN = IFCWORKPLAN;
  var IFCWORKSCHEDULE = 3342526732;
  _exports.IFCWORKSCHEDULE = IFCWORKSCHEDULE;
  var IFCWORKTIME = 1236880293;
  _exports.IFCWORKTIME = IFCWORKTIME;
  var IFCZSHAPEPROFILEDEF = 2543172580;
  _exports.IFCZSHAPEPROFILEDEF = IFCZSHAPEPROFILEDEF;
  var IFCZONE = 1033361043;
  _exports.IFCZONE = IFCZONE;
  var IfcElements = [4288193352, 1634111441, 177149247, 2056796094, 3087945054, 277319702, 753842376, 2906023776, 32344328, 2979338954, 1095909175, 2938176219, 635142910, 3758799889, 1051757585, 4217484030, 3902619387, 3296154744, 1677625105, 639361253, 843113511, 905975707, 3221913625, 3571504051, 2272882330, 25142252, 4136498852, 3640358203, 1973544240, 3495092785, 4074379575, 1335981549, 1052013943, 1062813311, 1945004755, 3040386961, 395920057, 3242481149, 342316401, 3518393246, 1360408905, 1904799276, 862014818, 3310460725, 264262732, 402227799, 1003880860, 4123344466, 1658829314, 2814081492, 3747195512, 484807127, 3415622556, 647756555, 819412036, 1426591983, 2058353004, 4278956645, 182646315, 2188021234, 3132237377, 987401354, 707683696, 2223149337, 3508470533, 900683007, 263784265, 1509553395, 3493046030, 3319311131, 2068733104, 4175244083, 2176052936, 76236018, 629592764, 377706215, 1437502449, 1073191201, 1911478936, 2474470126, 3588315303, 3079942009, 3694346114, 1687234759, 310824031, 3612865200, 3171933400, 1156407060, 3651124850, 738039164, 2295281155, 90941305, 2262370178, 3024970846, 3283111854, 979691226, 2320036040, 2016517767, 3053780830, 4086658281, 1329646415, 1529196076, 3127900445, 3027962421, 3420628829, 1999602285, 1404847402, 331165859, 4252922144, 3101698114, 1162798199, 413509423, 812556717, 3824725483, 2347447852, 3825984169, 1620046519, 3026737570, 630975310, 4292641817, 4207607924, 2391383451, 2769231204, 926996030, 2391406946, 4156078855, 3512223829, 4237592921, 3304561284, 486154966]; // dist/ifc2x4_helper.ts

  _exports.IfcElements = IfcElements;
  var FromRawLineData = {};
  _exports.FromRawLineData = FromRawLineData;

  FromRawLineData[IFCACTIONREQUEST] = function (d) {
    return IfcActionRequest.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCACTOR] = function (d) {
    return IfcActor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCACTORROLE] = function (d) {
    return IfcActorRole.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCACTUATOR] = function (d) {
    return IfcActuator.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCACTUATORTYPE] = function (d) {
    return IfcActuatorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCADDRESS] = function (d) {
    return IfcAddress.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCADVANCEDBREP] = function (d) {
    return IfcAdvancedBrep.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCADVANCEDBREPWITHVOIDS] = function (d) {
    return IfcAdvancedBrepWithVoids.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCADVANCEDFACE] = function (d) {
    return IfcAdvancedFace.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAIRTERMINAL] = function (d) {
    return IfcAirTerminal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAIRTERMINALBOX] = function (d) {
    return IfcAirTerminalBox.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAIRTERMINALBOXTYPE] = function (d) {
    return IfcAirTerminalBoxType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAIRTERMINALTYPE] = function (d) {
    return IfcAirTerminalType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAIRTOAIRHEATRECOVERY] = function (d) {
    return IfcAirToAirHeatRecovery.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAIRTOAIRHEATRECOVERYTYPE] = function (d) {
    return IfcAirToAirHeatRecoveryType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALARM] = function (d) {
    return IfcAlarm.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALARMTYPE] = function (d) {
    return IfcAlarmType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT] = function (d) {
    return IfcAlignment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DHORIZONTAL] = function (d) {
    return IfcAlignment2DHorizontal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DHORIZONTALSEGMENT] = function (d) {
    return IfcAlignment2DHorizontalSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DSEGMENT] = function (d) {
    return IfcAlignment2DSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DVERSEGCIRCULARARC] = function (d) {
    return IfcAlignment2DVerSegCircularArc.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DVERSEGLINE] = function (d) {
    return IfcAlignment2DVerSegLine.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DVERSEGPARABOLICARC] = function (d) {
    return IfcAlignment2DVerSegParabolicArc.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DVERTICAL] = function (d) {
    return IfcAlignment2DVertical.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENT2DVERTICALSEGMENT] = function (d) {
    return IfcAlignment2DVerticalSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCALIGNMENTCURVE] = function (d) {
    return IfcAlignmentCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCANNOTATION] = function (d) {
    return IfcAnnotation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCANNOTATIONFILLAREA] = function (d) {
    return IfcAnnotationFillArea.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAPPLICATION] = function (d) {
    return IfcApplication.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAPPLIEDVALUE] = function (d) {
    return IfcAppliedValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAPPROVAL] = function (d) {
    return IfcApproval.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAPPROVALRELATIONSHIP] = function (d) {
    return IfcApprovalRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCARBITRARYCLOSEDPROFILEDEF] = function (d) {
    return IfcArbitraryClosedProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCARBITRARYOPENPROFILEDEF] = function (d) {
    return IfcArbitraryOpenProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCARBITRARYPROFILEDEFWITHVOIDS] = function (d) {
    return IfcArbitraryProfileDefWithVoids.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCASSET] = function (d) {
    return IfcAsset.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCASYMMETRICISHAPEPROFILEDEF] = function (d) {
    return IfcAsymmetricIShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAUDIOVISUALAPPLIANCE] = function (d) {
    return IfcAudioVisualAppliance.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAUDIOVISUALAPPLIANCETYPE] = function (d) {
    return IfcAudioVisualApplianceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAXIS1PLACEMENT] = function (d) {
    return IfcAxis1Placement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAXIS2PLACEMENT2D] = function (d) {
    return IfcAxis2Placement2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCAXIS2PLACEMENT3D] = function (d) {
    return IfcAxis2Placement3D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBSPLINECURVE] = function (d) {
    return IfcBSplineCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBSPLINECURVEWITHKNOTS] = function (d) {
    return IfcBSplineCurveWithKnots.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBSPLINESURFACE] = function (d) {
    return IfcBSplineSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBSPLINESURFACEWITHKNOTS] = function (d) {
    return IfcBSplineSurfaceWithKnots.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBEAM] = function (d) {
    return IfcBeam.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBEAMSTANDARDCASE] = function (d) {
    return IfcBeamStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBEAMTYPE] = function (d) {
    return IfcBeamType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBEARING] = function (d) {
    return IfcBearing.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBEARINGTYPE] = function (d) {
    return IfcBearingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBLOBTEXTURE] = function (d) {
    return IfcBlobTexture.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBLOCK] = function (d) {
    return IfcBlock.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOILER] = function (d) {
    return IfcBoiler.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOILERTYPE] = function (d) {
    return IfcBoilerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOOLEANCLIPPINGRESULT] = function (d) {
    return IfcBooleanClippingResult.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOOLEANRESULT] = function (d) {
    return IfcBooleanResult.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDARYCONDITION] = function (d) {
    return IfcBoundaryCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDARYCURVE] = function (d) {
    return IfcBoundaryCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDARYEDGECONDITION] = function (d) {
    return IfcBoundaryEdgeCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDARYFACECONDITION] = function (d) {
    return IfcBoundaryFaceCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDARYNODECONDITION] = function (d) {
    return IfcBoundaryNodeCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDARYNODECONDITIONWARPING] = function (d) {
    return IfcBoundaryNodeConditionWarping.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDEDCURVE] = function (d) {
    return IfcBoundedCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDEDSURFACE] = function (d) {
    return IfcBoundedSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOUNDINGBOX] = function (d) {
    return IfcBoundingBox.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBOXEDHALFSPACE] = function (d) {
    return IfcBoxedHalfSpace.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBRIDGE] = function (d) {
    return IfcBridge.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBRIDGEPART] = function (d) {
    return IfcBridgePart.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDING] = function (d) {
    return IfcBuilding.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGELEMENT] = function (d) {
    return IfcBuildingElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGELEMENTPART] = function (d) {
    return IfcBuildingElementPart.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGELEMENTPARTTYPE] = function (d) {
    return IfcBuildingElementPartType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGELEMENTPROXY] = function (d) {
    return IfcBuildingElementProxy.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGELEMENTPROXYTYPE] = function (d) {
    return IfcBuildingElementProxyType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGELEMENTTYPE] = function (d) {
    return IfcBuildingElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGSTOREY] = function (d) {
    return IfcBuildingStorey.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBUILDINGSYSTEM] = function (d) {
    return IfcBuildingSystem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBURNER] = function (d) {
    return IfcBurner.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCBURNERTYPE] = function (d) {
    return IfcBurnerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCSHAPEPROFILEDEF] = function (d) {
    return IfcCShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLECARRIERFITTING] = function (d) {
    return IfcCableCarrierFitting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLECARRIERFITTINGTYPE] = function (d) {
    return IfcCableCarrierFittingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLECARRIERSEGMENT] = function (d) {
    return IfcCableCarrierSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLECARRIERSEGMENTTYPE] = function (d) {
    return IfcCableCarrierSegmentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLEFITTING] = function (d) {
    return IfcCableFitting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLEFITTINGTYPE] = function (d) {
    return IfcCableFittingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLESEGMENT] = function (d) {
    return IfcCableSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCABLESEGMENTTYPE] = function (d) {
    return IfcCableSegmentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCAISSONFOUNDATION] = function (d) {
    return IfcCaissonFoundation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCAISSONFOUNDATIONTYPE] = function (d) {
    return IfcCaissonFoundationType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANPOINT] = function (d) {
    return IfcCartesianPoint.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANPOINTLIST] = function (d) {
    return IfcCartesianPointList.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANPOINTLIST2D] = function (d) {
    return IfcCartesianPointList2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANPOINTLIST3D] = function (d) {
    return IfcCartesianPointList3D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR] = function (d) {
    return IfcCartesianTransformationOperator.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR2D] = function (d) {
    return IfcCartesianTransformationOperator2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM] = function (d) {
    return IfcCartesianTransformationOperator2DnonUniform.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR3D] = function (d) {
    return IfcCartesianTransformationOperator3D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM] = function (d) {
    return IfcCartesianTransformationOperator3DnonUniform.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCENTERLINEPROFILEDEF] = function (d) {
    return IfcCenterLineProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCHILLER] = function (d) {
    return IfcChiller.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCHILLERTYPE] = function (d) {
    return IfcChillerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCHIMNEY] = function (d) {
    return IfcChimney.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCHIMNEYTYPE] = function (d) {
    return IfcChimneyType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCIRCLE] = function (d) {
    return IfcCircle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCIRCLEHOLLOWPROFILEDEF] = function (d) {
    return IfcCircleHollowProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCIRCLEPROFILEDEF] = function (d) {
    return IfcCircleProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCIRCULARARCSEGMENT2D] = function (d) {
    return IfcCircularArcSegment2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCIVILELEMENT] = function (d) {
    return IfcCivilElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCIVILELEMENTTYPE] = function (d) {
    return IfcCivilElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCLASSIFICATION] = function (d) {
    return IfcClassification.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCLASSIFICATIONREFERENCE] = function (d) {
    return IfcClassificationReference.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCLOSEDSHELL] = function (d) {
    return IfcClosedShell.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOIL] = function (d) {
    return IfcCoil.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOILTYPE] = function (d) {
    return IfcCoilType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOLOURRGB] = function (d) {
    return IfcColourRgb.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOLOURRGBLIST] = function (d) {
    return IfcColourRgbList.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOLOURSPECIFICATION] = function (d) {
    return IfcColourSpecification.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOLUMN] = function (d) {
    return IfcColumn.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOLUMNSTANDARDCASE] = function (d) {
    return IfcColumnStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOLUMNTYPE] = function (d) {
    return IfcColumnType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMMUNICATIONSAPPLIANCE] = function (d) {
    return IfcCommunicationsAppliance.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMMUNICATIONSAPPLIANCETYPE] = function (d) {
    return IfcCommunicationsApplianceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPLEXPROPERTY] = function (d) {
    return IfcComplexProperty.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPLEXPROPERTYTEMPLATE] = function (d) {
    return IfcComplexPropertyTemplate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPOSITECURVE] = function (d) {
    return IfcCompositeCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPOSITECURVEONSURFACE] = function (d) {
    return IfcCompositeCurveOnSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPOSITECURVESEGMENT] = function (d) {
    return IfcCompositeCurveSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPOSITEPROFILEDEF] = function (d) {
    return IfcCompositeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPRESSOR] = function (d) {
    return IfcCompressor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOMPRESSORTYPE] = function (d) {
    return IfcCompressorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONDENSER] = function (d) {
    return IfcCondenser.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONDENSERTYPE] = function (d) {
    return IfcCondenserType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONIC] = function (d) {
    return IfcConic.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTEDFACESET] = function (d) {
    return IfcConnectedFaceSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTIONCURVEGEOMETRY] = function (d) {
    return IfcConnectionCurveGeometry.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTIONGEOMETRY] = function (d) {
    return IfcConnectionGeometry.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTIONPOINTECCENTRICITY] = function (d) {
    return IfcConnectionPointEccentricity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTIONPOINTGEOMETRY] = function (d) {
    return IfcConnectionPointGeometry.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTIONSURFACEGEOMETRY] = function (d) {
    return IfcConnectionSurfaceGeometry.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONNECTIONVOLUMEGEOMETRY] = function (d) {
    return IfcConnectionVolumeGeometry.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRAINT] = function (d) {
    return IfcConstraint.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONEQUIPMENTRESOURCE] = function (d) {
    return IfcConstructionEquipmentResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE] = function (d) {
    return IfcConstructionEquipmentResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONMATERIALRESOURCE] = function (d) {
    return IfcConstructionMaterialResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONMATERIALRESOURCETYPE] = function (d) {
    return IfcConstructionMaterialResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONPRODUCTRESOURCE] = function (d) {
    return IfcConstructionProductResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONPRODUCTRESOURCETYPE] = function (d) {
    return IfcConstructionProductResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONRESOURCE] = function (d) {
    return IfcConstructionResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONSTRUCTIONRESOURCETYPE] = function (d) {
    return IfcConstructionResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONTEXT] = function (d) {
    return IfcContext.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONTEXTDEPENDENTUNIT] = function (d) {
    return IfcContextDependentUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONTROL] = function (d) {
    return IfcControl.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONTROLLER] = function (d) {
    return IfcController.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONTROLLERTYPE] = function (d) {
    return IfcControllerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONVERSIONBASEDUNIT] = function (d) {
    return IfcConversionBasedUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCONVERSIONBASEDUNITWITHOFFSET] = function (d) {
    return IfcConversionBasedUnitWithOffset.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOOLEDBEAM] = function (d) {
    return IfcCooledBeam.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOOLEDBEAMTYPE] = function (d) {
    return IfcCooledBeamType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOOLINGTOWER] = function (d) {
    return IfcCoolingTower.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOOLINGTOWERTYPE] = function (d) {
    return IfcCoolingTowerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOORDINATEOPERATION] = function (d) {
    return IfcCoordinateOperation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOORDINATEREFERENCESYSTEM] = function (d) {
    return IfcCoordinateReferenceSystem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOSTITEM] = function (d) {
    return IfcCostItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOSTSCHEDULE] = function (d) {
    return IfcCostSchedule.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOSTVALUE] = function (d) {
    return IfcCostValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOVERING] = function (d) {
    return IfcCovering.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCOVERINGTYPE] = function (d) {
    return IfcCoveringType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCREWRESOURCE] = function (d) {
    return IfcCrewResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCREWRESOURCETYPE] = function (d) {
    return IfcCrewResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCSGPRIMITIVE3D] = function (d) {
    return IfcCsgPrimitive3D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCSGSOLID] = function (d) {
    return IfcCsgSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURRENCYRELATIONSHIP] = function (d) {
    return IfcCurrencyRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURTAINWALL] = function (d) {
    return IfcCurtainWall.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURTAINWALLTYPE] = function (d) {
    return IfcCurtainWallType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVE] = function (d) {
    return IfcCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVEBOUNDEDPLANE] = function (d) {
    return IfcCurveBoundedPlane.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVEBOUNDEDSURFACE] = function (d) {
    return IfcCurveBoundedSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVESEGMENT2D] = function (d) {
    return IfcCurveSegment2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVESTYLE] = function (d) {
    return IfcCurveStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVESTYLEFONT] = function (d) {
    return IfcCurveStyleFont.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVESTYLEFONTANDSCALING] = function (d) {
    return IfcCurveStyleFontAndScaling.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCURVESTYLEFONTPATTERN] = function (d) {
    return IfcCurveStyleFontPattern.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCCYLINDRICALSURFACE] = function (d) {
    return IfcCylindricalSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDAMPER] = function (d) {
    return IfcDamper.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDAMPERTYPE] = function (d) {
    return IfcDamperType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDEEPFOUNDATION] = function (d) {
    return IfcDeepFoundation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDEEPFOUNDATIONTYPE] = function (d) {
    return IfcDeepFoundationType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDERIVEDPROFILEDEF] = function (d) {
    return IfcDerivedProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDERIVEDUNIT] = function (d) {
    return IfcDerivedUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDERIVEDUNITELEMENT] = function (d) {
    return IfcDerivedUnitElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDIMENSIONALEXPONENTS] = function (d) {
    return IfcDimensionalExponents.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDIRECTION] = function (d) {
    return IfcDirection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISCRETEACCESSORY] = function (d) {
    return IfcDiscreteAccessory.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISCRETEACCESSORYTYPE] = function (d) {
    return IfcDiscreteAccessoryType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTANCEEXPRESSION] = function (d) {
    return IfcDistanceExpression.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONCHAMBERELEMENT] = function (d) {
    return IfcDistributionChamberElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONCHAMBERELEMENTTYPE] = function (d) {
    return IfcDistributionChamberElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONCIRCUIT] = function (d) {
    return IfcDistributionCircuit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONCONTROLELEMENT] = function (d) {
    return IfcDistributionControlElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONCONTROLELEMENTTYPE] = function (d) {
    return IfcDistributionControlElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONELEMENT] = function (d) {
    return IfcDistributionElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONELEMENTTYPE] = function (d) {
    return IfcDistributionElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONFLOWELEMENT] = function (d) {
    return IfcDistributionFlowElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONFLOWELEMENTTYPE] = function (d) {
    return IfcDistributionFlowElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONPORT] = function (d) {
    return IfcDistributionPort.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDISTRIBUTIONSYSTEM] = function (d) {
    return IfcDistributionSystem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOCUMENTINFORMATION] = function (d) {
    return IfcDocumentInformation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOCUMENTINFORMATIONRELATIONSHIP] = function (d) {
    return IfcDocumentInformationRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOCUMENTREFERENCE] = function (d) {
    return IfcDocumentReference.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOOR] = function (d) {
    return IfcDoor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOORLININGPROPERTIES] = function (d) {
    return IfcDoorLiningProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOORPANELPROPERTIES] = function (d) {
    return IfcDoorPanelProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOORSTANDARDCASE] = function (d) {
    return IfcDoorStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOORSTYLE] = function (d) {
    return IfcDoorStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDOORTYPE] = function (d) {
    return IfcDoorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDRAUGHTINGPREDEFINEDCOLOUR] = function (d) {
    return IfcDraughtingPreDefinedColour.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDRAUGHTINGPREDEFINEDCURVEFONT] = function (d) {
    return IfcDraughtingPreDefinedCurveFont.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDUCTFITTING] = function (d) {
    return IfcDuctFitting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDUCTFITTINGTYPE] = function (d) {
    return IfcDuctFittingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDUCTSEGMENT] = function (d) {
    return IfcDuctSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDUCTSEGMENTTYPE] = function (d) {
    return IfcDuctSegmentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDUCTSILENCER] = function (d) {
    return IfcDuctSilencer.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCDUCTSILENCERTYPE] = function (d) {
    return IfcDuctSilencerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEDGE] = function (d) {
    return IfcEdge.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEDGECURVE] = function (d) {
    return IfcEdgeCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEDGELOOP] = function (d) {
    return IfcEdgeLoop.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICAPPLIANCE] = function (d) {
    return IfcElectricAppliance.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICAPPLIANCETYPE] = function (d) {
    return IfcElectricApplianceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICDISTRIBUTIONBOARD] = function (d) {
    return IfcElectricDistributionBoard.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICDISTRIBUTIONBOARDTYPE] = function (d) {
    return IfcElectricDistributionBoardType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICFLOWSTORAGEDEVICE] = function (d) {
    return IfcElectricFlowStorageDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICFLOWSTORAGEDEVICETYPE] = function (d) {
    return IfcElectricFlowStorageDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICGENERATOR] = function (d) {
    return IfcElectricGenerator.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICGENERATORTYPE] = function (d) {
    return IfcElectricGeneratorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICMOTOR] = function (d) {
    return IfcElectricMotor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICMOTORTYPE] = function (d) {
    return IfcElectricMotorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICTIMECONTROL] = function (d) {
    return IfcElectricTimeControl.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELECTRICTIMECONTROLTYPE] = function (d) {
    return IfcElectricTimeControlType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENT] = function (d) {
    return IfcElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTASSEMBLY] = function (d) {
    return IfcElementAssembly.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTASSEMBLYTYPE] = function (d) {
    return IfcElementAssemblyType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTCOMPONENT] = function (d) {
    return IfcElementComponent.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTCOMPONENTTYPE] = function (d) {
    return IfcElementComponentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTQUANTITY] = function (d) {
    return IfcElementQuantity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTTYPE] = function (d) {
    return IfcElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELEMENTARYSURFACE] = function (d) {
    return IfcElementarySurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELLIPSE] = function (d) {
    return IfcEllipse.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCELLIPSEPROFILEDEF] = function (d) {
    return IfcEllipseProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCENERGYCONVERSIONDEVICE] = function (d) {
    return IfcEnergyConversionDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCENERGYCONVERSIONDEVICETYPE] = function (d) {
    return IfcEnergyConversionDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCENGINE] = function (d) {
    return IfcEngine.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCENGINETYPE] = function (d) {
    return IfcEngineType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVAPORATIVECOOLER] = function (d) {
    return IfcEvaporativeCooler.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVAPORATIVECOOLERTYPE] = function (d) {
    return IfcEvaporativeCoolerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVAPORATOR] = function (d) {
    return IfcEvaporator.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVAPORATORTYPE] = function (d) {
    return IfcEvaporatorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVENT] = function (d) {
    return IfcEvent.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVENTTIME] = function (d) {
    return IfcEventTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEVENTTYPE] = function (d) {
    return IfcEventType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTENDEDPROPERTIES] = function (d) {
    return IfcExtendedProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALINFORMATION] = function (d) {
    return IfcExternalInformation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALREFERENCE] = function (d) {
    return IfcExternalReference.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALREFERENCERELATIONSHIP] = function (d) {
    return IfcExternalReferenceRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALSPATIALELEMENT] = function (d) {
    return IfcExternalSpatialElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALSPATIALSTRUCTUREELEMENT] = function (d) {
    return IfcExternalSpatialStructureElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALLYDEFINEDHATCHSTYLE] = function (d) {
    return IfcExternallyDefinedHatchStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALLYDEFINEDSURFACESTYLE] = function (d) {
    return IfcExternallyDefinedSurfaceStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTERNALLYDEFINEDTEXTFONT] = function (d) {
    return IfcExternallyDefinedTextFont.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTRUDEDAREASOLID] = function (d) {
    return IfcExtrudedAreaSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCEXTRUDEDAREASOLIDTAPERED] = function (d) {
    return IfcExtrudedAreaSolidTapered.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACE] = function (d) {
    return IfcFace.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACEBASEDSURFACEMODEL] = function (d) {
    return IfcFaceBasedSurfaceModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACEBOUND] = function (d) {
    return IfcFaceBound.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACEOUTERBOUND] = function (d) {
    return IfcFaceOuterBound.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACESURFACE] = function (d) {
    return IfcFaceSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACETEDBREP] = function (d) {
    return IfcFacetedBrep.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACETEDBREPWITHVOIDS] = function (d) {
    return IfcFacetedBrepWithVoids.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACILITY] = function (d) {
    return IfcFacility.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFACILITYPART] = function (d) {
    return IfcFacilityPart.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFAILURECONNECTIONCONDITION] = function (d) {
    return IfcFailureConnectionCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFAN] = function (d) {
    return IfcFan.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFANTYPE] = function (d) {
    return IfcFanType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFASTENER] = function (d) {
    return IfcFastener.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFASTENERTYPE] = function (d) {
    return IfcFastenerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFEATUREELEMENT] = function (d) {
    return IfcFeatureElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFEATUREELEMENTADDITION] = function (d) {
    return IfcFeatureElementAddition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFEATUREELEMENTSUBTRACTION] = function (d) {
    return IfcFeatureElementSubtraction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFILLAREASTYLE] = function (d) {
    return IfcFillAreaStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFILLAREASTYLEHATCHING] = function (d) {
    return IfcFillAreaStyleHatching.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFILLAREASTYLETILES] = function (d) {
    return IfcFillAreaStyleTiles.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFILTER] = function (d) {
    return IfcFilter.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFILTERTYPE] = function (d) {
    return IfcFilterType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFIRESUPPRESSIONTERMINAL] = function (d) {
    return IfcFireSuppressionTerminal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFIRESUPPRESSIONTERMINALTYPE] = function (d) {
    return IfcFireSuppressionTerminalType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFIXEDREFERENCESWEPTAREASOLID] = function (d) {
    return IfcFixedReferenceSweptAreaSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWCONTROLLER] = function (d) {
    return IfcFlowController.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWCONTROLLERTYPE] = function (d) {
    return IfcFlowControllerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWFITTING] = function (d) {
    return IfcFlowFitting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWFITTINGTYPE] = function (d) {
    return IfcFlowFittingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWINSTRUMENT] = function (d) {
    return IfcFlowInstrument.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWINSTRUMENTTYPE] = function (d) {
    return IfcFlowInstrumentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWMETER] = function (d) {
    return IfcFlowMeter.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWMETERTYPE] = function (d) {
    return IfcFlowMeterType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWMOVINGDEVICE] = function (d) {
    return IfcFlowMovingDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWMOVINGDEVICETYPE] = function (d) {
    return IfcFlowMovingDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWSEGMENT] = function (d) {
    return IfcFlowSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWSEGMENTTYPE] = function (d) {
    return IfcFlowSegmentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWSTORAGEDEVICE] = function (d) {
    return IfcFlowStorageDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWSTORAGEDEVICETYPE] = function (d) {
    return IfcFlowStorageDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWTERMINAL] = function (d) {
    return IfcFlowTerminal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWTERMINALTYPE] = function (d) {
    return IfcFlowTerminalType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWTREATMENTDEVICE] = function (d) {
    return IfcFlowTreatmentDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFLOWTREATMENTDEVICETYPE] = function (d) {
    return IfcFlowTreatmentDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFOOTING] = function (d) {
    return IfcFooting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFOOTINGTYPE] = function (d) {
    return IfcFootingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFURNISHINGELEMENT] = function (d) {
    return IfcFurnishingElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFURNISHINGELEMENTTYPE] = function (d) {
    return IfcFurnishingElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFURNITURE] = function (d) {
    return IfcFurniture.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCFURNITURETYPE] = function (d) {
    return IfcFurnitureType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOGRAPHICELEMENT] = function (d) {
    return IfcGeographicElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOGRAPHICELEMENTTYPE] = function (d) {
    return IfcGeographicElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOMETRICCURVESET] = function (d) {
    return IfcGeometricCurveSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOMETRICREPRESENTATIONCONTEXT] = function (d) {
    return IfcGeometricRepresentationContext.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOMETRICREPRESENTATIONITEM] = function (d) {
    return IfcGeometricRepresentationItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOMETRICREPRESENTATIONSUBCONTEXT] = function (d) {
    return IfcGeometricRepresentationSubContext.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGEOMETRICSET] = function (d) {
    return IfcGeometricSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGRID] = function (d) {
    return IfcGrid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGRIDAXIS] = function (d) {
    return IfcGridAxis.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGRIDPLACEMENT] = function (d) {
    return IfcGridPlacement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCGROUP] = function (d) {
    return IfcGroup.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCHALFSPACESOLID] = function (d) {
    return IfcHalfSpaceSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCHEATEXCHANGER] = function (d) {
    return IfcHeatExchanger.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCHEATEXCHANGERTYPE] = function (d) {
    return IfcHeatExchangerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCHUMIDIFIER] = function (d) {
    return IfcHumidifier.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCHUMIDIFIERTYPE] = function (d) {
    return IfcHumidifierType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCISHAPEPROFILEDEF] = function (d) {
    return IfcIShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCIMAGETEXTURE] = function (d) {
    return IfcImageTexture.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINDEXEDCOLOURMAP] = function (d) {
    return IfcIndexedColourMap.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINDEXEDPOLYCURVE] = function (d) {
    return IfcIndexedPolyCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINDEXEDPOLYGONALFACE] = function (d) {
    return IfcIndexedPolygonalFace.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINDEXEDPOLYGONALFACEWITHVOIDS] = function (d) {
    return IfcIndexedPolygonalFaceWithVoids.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINDEXEDTEXTUREMAP] = function (d) {
    return IfcIndexedTextureMap.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINDEXEDTRIANGLETEXTUREMAP] = function (d) {
    return IfcIndexedTriangleTextureMap.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINTERCEPTOR] = function (d) {
    return IfcInterceptor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINTERCEPTORTYPE] = function (d) {
    return IfcInterceptorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINTERSECTIONCURVE] = function (d) {
    return IfcIntersectionCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCINVENTORY] = function (d) {
    return IfcInventory.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCIRREGULARTIMESERIES] = function (d) {
    return IfcIrregularTimeSeries.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCIRREGULARTIMESERIESVALUE] = function (d) {
    return IfcIrregularTimeSeriesValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCJUNCTIONBOX] = function (d) {
    return IfcJunctionBox.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCJUNCTIONBOXTYPE] = function (d) {
    return IfcJunctionBoxType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLSHAPEPROFILEDEF] = function (d) {
    return IfcLShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLABORRESOURCE] = function (d) {
    return IfcLaborResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLABORRESOURCETYPE] = function (d) {
    return IfcLaborResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLAGTIME] = function (d) {
    return IfcLagTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLAMP] = function (d) {
    return IfcLamp.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLAMPTYPE] = function (d) {
    return IfcLampType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIBRARYINFORMATION] = function (d) {
    return IfcLibraryInformation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIBRARYREFERENCE] = function (d) {
    return IfcLibraryReference.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTDISTRIBUTIONDATA] = function (d) {
    return IfcLightDistributionData.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTFIXTURE] = function (d) {
    return IfcLightFixture.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTFIXTURETYPE] = function (d) {
    return IfcLightFixtureType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTINTENSITYDISTRIBUTION] = function (d) {
    return IfcLightIntensityDistribution.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTSOURCE] = function (d) {
    return IfcLightSource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTSOURCEAMBIENT] = function (d) {
    return IfcLightSourceAmbient.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTSOURCEDIRECTIONAL] = function (d) {
    return IfcLightSourceDirectional.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTSOURCEGONIOMETRIC] = function (d) {
    return IfcLightSourceGoniometric.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTSOURCEPOSITIONAL] = function (d) {
    return IfcLightSourcePositional.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLIGHTSOURCESPOT] = function (d) {
    return IfcLightSourceSpot.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLINE] = function (d) {
    return IfcLine.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLINESEGMENT2D] = function (d) {
    return IfcLineSegment2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLINEARPLACEMENT] = function (d) {
    return IfcLinearPlacement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLINEARPOSITIONINGELEMENT] = function (d) {
    return IfcLinearPositioningElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLOCALPLACEMENT] = function (d) {
    return IfcLocalPlacement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCLOOP] = function (d) {
    return IfcLoop.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMANIFOLDSOLIDBREP] = function (d) {
    return IfcManifoldSolidBrep.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMAPCONVERSION] = function (d) {
    return IfcMapConversion.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMAPPEDITEM] = function (d) {
    return IfcMappedItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIAL] = function (d) {
    return IfcMaterial.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALCLASSIFICATIONRELATIONSHIP] = function (d) {
    return IfcMaterialClassificationRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALCONSTITUENT] = function (d) {
    return IfcMaterialConstituent.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALCONSTITUENTSET] = function (d) {
    return IfcMaterialConstituentSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALDEFINITION] = function (d) {
    return IfcMaterialDefinition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALDEFINITIONREPRESENTATION] = function (d) {
    return IfcMaterialDefinitionRepresentation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALLAYER] = function (d) {
    return IfcMaterialLayer.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALLAYERSET] = function (d) {
    return IfcMaterialLayerSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALLAYERSETUSAGE] = function (d) {
    return IfcMaterialLayerSetUsage.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALLAYERWITHOFFSETS] = function (d) {
    return IfcMaterialLayerWithOffsets.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALLIST] = function (d) {
    return IfcMaterialList.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALPROFILE] = function (d) {
    return IfcMaterialProfile.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALPROFILESET] = function (d) {
    return IfcMaterialProfileSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALPROFILESETUSAGE] = function (d) {
    return IfcMaterialProfileSetUsage.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALPROFILESETUSAGETAPERING] = function (d) {
    return IfcMaterialProfileSetUsageTapering.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALPROFILEWITHOFFSETS] = function (d) {
    return IfcMaterialProfileWithOffsets.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALPROPERTIES] = function (d) {
    return IfcMaterialProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALRELATIONSHIP] = function (d) {
    return IfcMaterialRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMATERIALUSAGEDEFINITION] = function (d) {
    return IfcMaterialUsageDefinition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMEASUREWITHUNIT] = function (d) {
    return IfcMeasureWithUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMECHANICALFASTENER] = function (d) {
    return IfcMechanicalFastener.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMECHANICALFASTENERTYPE] = function (d) {
    return IfcMechanicalFastenerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMEDICALDEVICE] = function (d) {
    return IfcMedicalDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMEDICALDEVICETYPE] = function (d) {
    return IfcMedicalDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMEMBER] = function (d) {
    return IfcMember.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMEMBERSTANDARDCASE] = function (d) {
    return IfcMemberStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMEMBERTYPE] = function (d) {
    return IfcMemberType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMETRIC] = function (d) {
    return IfcMetric.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMIRROREDPROFILEDEF] = function (d) {
    return IfcMirroredProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMONETARYUNIT] = function (d) {
    return IfcMonetaryUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMOTORCONNECTION] = function (d) {
    return IfcMotorConnection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCMOTORCONNECTIONTYPE] = function (d) {
    return IfcMotorConnectionType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCNAMEDUNIT] = function (d) {
    return IfcNamedUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOBJECT] = function (d) {
    return IfcObject.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOBJECTDEFINITION] = function (d) {
    return IfcObjectDefinition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOBJECTPLACEMENT] = function (d) {
    return IfcObjectPlacement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOBJECTIVE] = function (d) {
    return IfcObjective.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOCCUPANT] = function (d) {
    return IfcOccupant.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOFFSETCURVE] = function (d) {
    return IfcOffsetCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOFFSETCURVE2D] = function (d) {
    return IfcOffsetCurve2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOFFSETCURVE3D] = function (d) {
    return IfcOffsetCurve3D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOFFSETCURVEBYDISTANCES] = function (d) {
    return IfcOffsetCurveByDistances.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOPENSHELL] = function (d) {
    return IfcOpenShell.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOPENINGELEMENT] = function (d) {
    return IfcOpeningElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOPENINGSTANDARDCASE] = function (d) {
    return IfcOpeningStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCORGANIZATION] = function (d) {
    return IfcOrganization.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCORGANIZATIONRELATIONSHIP] = function (d) {
    return IfcOrganizationRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCORIENTATIONEXPRESSION] = function (d) {
    return IfcOrientationExpression.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCORIENTEDEDGE] = function (d) {
    return IfcOrientedEdge.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOUTERBOUNDARYCURVE] = function (d) {
    return IfcOuterBoundaryCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOUTLET] = function (d) {
    return IfcOutlet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOUTLETTYPE] = function (d) {
    return IfcOutletType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCOWNERHISTORY] = function (d) {
    return IfcOwnerHistory.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPARAMETERIZEDPROFILEDEF] = function (d) {
    return IfcParameterizedProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPATH] = function (d) {
    return IfcPath.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPCURVE] = function (d) {
    return IfcPcurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPERFORMANCEHISTORY] = function (d) {
    return IfcPerformanceHistory.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPERMEABLECOVERINGPROPERTIES] = function (d) {
    return IfcPermeableCoveringProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPERMIT] = function (d) {
    return IfcPermit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPERSON] = function (d) {
    return IfcPerson.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPERSONANDORGANIZATION] = function (d) {
    return IfcPersonAndOrganization.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPHYSICALCOMPLEXQUANTITY] = function (d) {
    return IfcPhysicalComplexQuantity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPHYSICALQUANTITY] = function (d) {
    return IfcPhysicalQuantity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPHYSICALSIMPLEQUANTITY] = function (d) {
    return IfcPhysicalSimpleQuantity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPILE] = function (d) {
    return IfcPile.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPILETYPE] = function (d) {
    return IfcPileType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPIPEFITTING] = function (d) {
    return IfcPipeFitting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPIPEFITTINGTYPE] = function (d) {
    return IfcPipeFittingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPIPESEGMENT] = function (d) {
    return IfcPipeSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPIPESEGMENTTYPE] = function (d) {
    return IfcPipeSegmentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPIXELTEXTURE] = function (d) {
    return IfcPixelTexture.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLACEMENT] = function (d) {
    return IfcPlacement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLANARBOX] = function (d) {
    return IfcPlanarBox.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLANAREXTENT] = function (d) {
    return IfcPlanarExtent.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLANE] = function (d) {
    return IfcPlane.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLATE] = function (d) {
    return IfcPlate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLATESTANDARDCASE] = function (d) {
    return IfcPlateStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPLATETYPE] = function (d) {
    return IfcPlateType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOINT] = function (d) {
    return IfcPoint.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOINTONCURVE] = function (d) {
    return IfcPointOnCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOINTONSURFACE] = function (d) {
    return IfcPointOnSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOLYLOOP] = function (d) {
    return IfcPolyLoop.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOLYGONALBOUNDEDHALFSPACE] = function (d) {
    return IfcPolygonalBoundedHalfSpace.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOLYGONALFACESET] = function (d) {
    return IfcPolygonalFaceSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOLYLINE] = function (d) {
    return IfcPolyline.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPORT] = function (d) {
    return IfcPort.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOSITIONINGELEMENT] = function (d) {
    return IfcPositioningElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPOSTALADDRESS] = function (d) {
    return IfcPostalAddress.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPREDEFINEDCOLOUR] = function (d) {
    return IfcPreDefinedColour.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPREDEFINEDCURVEFONT] = function (d) {
    return IfcPreDefinedCurveFont.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPREDEFINEDITEM] = function (d) {
    return IfcPreDefinedItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPREDEFINEDPROPERTIES] = function (d) {
    return IfcPreDefinedProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPREDEFINEDPROPERTYSET] = function (d) {
    return IfcPreDefinedPropertySet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPREDEFINEDTEXTFONT] = function (d) {
    return IfcPreDefinedTextFont.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRESENTATIONITEM] = function (d) {
    return IfcPresentationItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRESENTATIONLAYERASSIGNMENT] = function (d) {
    return IfcPresentationLayerAssignment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRESENTATIONLAYERWITHSTYLE] = function (d) {
    return IfcPresentationLayerWithStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRESENTATIONSTYLE] = function (d) {
    return IfcPresentationStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRESENTATIONSTYLEASSIGNMENT] = function (d) {
    return IfcPresentationStyleAssignment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROCEDURE] = function (d) {
    return IfcProcedure.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROCEDURETYPE] = function (d) {
    return IfcProcedureType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROCESS] = function (d) {
    return IfcProcess.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRODUCT] = function (d) {
    return IfcProduct.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRODUCTDEFINITIONSHAPE] = function (d) {
    return IfcProductDefinitionShape.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPRODUCTREPRESENTATION] = function (d) {
    return IfcProductRepresentation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROFILEDEF] = function (d) {
    return IfcProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROFILEPROPERTIES] = function (d) {
    return IfcProfileProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROJECT] = function (d) {
    return IfcProject.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROJECTLIBRARY] = function (d) {
    return IfcProjectLibrary.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROJECTORDER] = function (d) {
    return IfcProjectOrder.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROJECTEDCRS] = function (d) {
    return IfcProjectedCRS.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROJECTIONELEMENT] = function (d) {
    return IfcProjectionElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTY] = function (d) {
    return IfcProperty.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYABSTRACTION] = function (d) {
    return IfcPropertyAbstraction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYBOUNDEDVALUE] = function (d) {
    return IfcPropertyBoundedValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYDEFINITION] = function (d) {
    return IfcPropertyDefinition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYDEPENDENCYRELATIONSHIP] = function (d) {
    return IfcPropertyDependencyRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYENUMERATEDVALUE] = function (d) {
    return IfcPropertyEnumeratedValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYENUMERATION] = function (d) {
    return IfcPropertyEnumeration.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYLISTVALUE] = function (d) {
    return IfcPropertyListValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYREFERENCEVALUE] = function (d) {
    return IfcPropertyReferenceValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYSET] = function (d) {
    return IfcPropertySet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYSETDEFINITION] = function (d) {
    return IfcPropertySetDefinition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYSETTEMPLATE] = function (d) {
    return IfcPropertySetTemplate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYSINGLEVALUE] = function (d) {
    return IfcPropertySingleValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYTABLEVALUE] = function (d) {
    return IfcPropertyTableValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYTEMPLATE] = function (d) {
    return IfcPropertyTemplate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROPERTYTEMPLATEDEFINITION] = function (d) {
    return IfcPropertyTemplateDefinition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROTECTIVEDEVICE] = function (d) {
    return IfcProtectiveDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROTECTIVEDEVICETRIPPINGUNIT] = function (d) {
    return IfcProtectiveDeviceTrippingUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROTECTIVEDEVICETRIPPINGUNITTYPE] = function (d) {
    return IfcProtectiveDeviceTrippingUnitType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROTECTIVEDEVICETYPE] = function (d) {
    return IfcProtectiveDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPROXY] = function (d) {
    return IfcProxy.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPUMP] = function (d) {
    return IfcPump.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCPUMPTYPE] = function (d) {
    return IfcPumpType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYAREA] = function (d) {
    return IfcQuantityArea.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYCOUNT] = function (d) {
    return IfcQuantityCount.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYLENGTH] = function (d) {
    return IfcQuantityLength.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYSET] = function (d) {
    return IfcQuantitySet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYTIME] = function (d) {
    return IfcQuantityTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYVOLUME] = function (d) {
    return IfcQuantityVolume.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCQUANTITYWEIGHT] = function (d) {
    return IfcQuantityWeight.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRAILING] = function (d) {
    return IfcRailing.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRAILINGTYPE] = function (d) {
    return IfcRailingType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRAMP] = function (d) {
    return IfcRamp.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRAMPFLIGHT] = function (d) {
    return IfcRampFlight.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRAMPFLIGHTTYPE] = function (d) {
    return IfcRampFlightType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRAMPTYPE] = function (d) {
    return IfcRampType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRATIONALBSPLINECURVEWITHKNOTS] = function (d) {
    return IfcRationalBSplineCurveWithKnots.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRATIONALBSPLINESURFACEWITHKNOTS] = function (d) {
    return IfcRationalBSplineSurfaceWithKnots.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRECTANGLEHOLLOWPROFILEDEF] = function (d) {
    return IfcRectangleHollowProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRECTANGLEPROFILEDEF] = function (d) {
    return IfcRectangleProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRECTANGULARPYRAMID] = function (d) {
    return IfcRectangularPyramid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRECTANGULARTRIMMEDSURFACE] = function (d) {
    return IfcRectangularTrimmedSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRECURRENCEPATTERN] = function (d) {
    return IfcRecurrencePattern.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREFERENCE] = function (d) {
    return IfcReference.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREFERENT] = function (d) {
    return IfcReferent.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREGULARTIMESERIES] = function (d) {
    return IfcRegularTimeSeries.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCEMENTBARPROPERTIES] = function (d) {
    return IfcReinforcementBarProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCEMENTDEFINITIONPROPERTIES] = function (d) {
    return IfcReinforcementDefinitionProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCINGBAR] = function (d) {
    return IfcReinforcingBar.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCINGBARTYPE] = function (d) {
    return IfcReinforcingBarType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCINGELEMENT] = function (d) {
    return IfcReinforcingElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCINGELEMENTTYPE] = function (d) {
    return IfcReinforcingElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCINGMESH] = function (d) {
    return IfcReinforcingMesh.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREINFORCINGMESHTYPE] = function (d) {
    return IfcReinforcingMeshType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELAGGREGATES] = function (d) {
    return IfcRelAggregates.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNS] = function (d) {
    return IfcRelAssigns.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTOACTOR] = function (d) {
    return IfcRelAssignsToActor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTOCONTROL] = function (d) {
    return IfcRelAssignsToControl.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTOGROUP] = function (d) {
    return IfcRelAssignsToGroup.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTOGROUPBYFACTOR] = function (d) {
    return IfcRelAssignsToGroupByFactor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTOPROCESS] = function (d) {
    return IfcRelAssignsToProcess.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTOPRODUCT] = function (d) {
    return IfcRelAssignsToProduct.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSIGNSTORESOURCE] = function (d) {
    return IfcRelAssignsToResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATES] = function (d) {
    return IfcRelAssociates.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATESAPPROVAL] = function (d) {
    return IfcRelAssociatesApproval.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATESCLASSIFICATION] = function (d) {
    return IfcRelAssociatesClassification.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATESCONSTRAINT] = function (d) {
    return IfcRelAssociatesConstraint.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATESDOCUMENT] = function (d) {
    return IfcRelAssociatesDocument.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATESLIBRARY] = function (d) {
    return IfcRelAssociatesLibrary.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELASSOCIATESMATERIAL] = function (d) {
    return IfcRelAssociatesMaterial.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTS] = function (d) {
    return IfcRelConnects.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSELEMENTS] = function (d) {
    return IfcRelConnectsElements.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSPATHELEMENTS] = function (d) {
    return IfcRelConnectsPathElements.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSPORTTOELEMENT] = function (d) {
    return IfcRelConnectsPortToElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSPORTS] = function (d) {
    return IfcRelConnectsPorts.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSSTRUCTURALACTIVITY] = function (d) {
    return IfcRelConnectsStructuralActivity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSSTRUCTURALMEMBER] = function (d) {
    return IfcRelConnectsStructuralMember.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSWITHECCENTRICITY] = function (d) {
    return IfcRelConnectsWithEccentricity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONNECTSWITHREALIZINGELEMENTS] = function (d) {
    return IfcRelConnectsWithRealizingElements.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCONTAINEDINSPATIALSTRUCTURE] = function (d) {
    return IfcRelContainedInSpatialStructure.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCOVERSBLDGELEMENTS] = function (d) {
    return IfcRelCoversBldgElements.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELCOVERSSPACES] = function (d) {
    return IfcRelCoversSpaces.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDECLARES] = function (d) {
    return IfcRelDeclares.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDECOMPOSES] = function (d) {
    return IfcRelDecomposes.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDEFINES] = function (d) {
    return IfcRelDefines.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDEFINESBYOBJECT] = function (d) {
    return IfcRelDefinesByObject.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDEFINESBYPROPERTIES] = function (d) {
    return IfcRelDefinesByProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDEFINESBYTEMPLATE] = function (d) {
    return IfcRelDefinesByTemplate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELDEFINESBYTYPE] = function (d) {
    return IfcRelDefinesByType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELFILLSELEMENT] = function (d) {
    return IfcRelFillsElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELFLOWCONTROLELEMENTS] = function (d) {
    return IfcRelFlowControlElements.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELINTERFERESELEMENTS] = function (d) {
    return IfcRelInterferesElements.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELNESTS] = function (d) {
    return IfcRelNests.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELPOSITIONS] = function (d) {
    return IfcRelPositions.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELPROJECTSELEMENT] = function (d) {
    return IfcRelProjectsElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELREFERENCEDINSPATIALSTRUCTURE] = function (d) {
    return IfcRelReferencedInSpatialStructure.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELSEQUENCE] = function (d) {
    return IfcRelSequence.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELSERVICESBUILDINGS] = function (d) {
    return IfcRelServicesBuildings.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELSPACEBOUNDARY] = function (d) {
    return IfcRelSpaceBoundary.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELSPACEBOUNDARY1STLEVEL] = function (d) {
    return IfcRelSpaceBoundary1stLevel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELSPACEBOUNDARY2NDLEVEL] = function (d) {
    return IfcRelSpaceBoundary2ndLevel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELVOIDSELEMENT] = function (d) {
    return IfcRelVoidsElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRELATIONSHIP] = function (d) {
    return IfcRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREPARAMETRISEDCOMPOSITECURVESEGMENT] = function (d) {
    return IfcReparametrisedCompositeCurveSegment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREPRESENTATION] = function (d) {
    return IfcRepresentation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREPRESENTATIONCONTEXT] = function (d) {
    return IfcRepresentationContext.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREPRESENTATIONITEM] = function (d) {
    return IfcRepresentationItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREPRESENTATIONMAP] = function (d) {
    return IfcRepresentationMap.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRESOURCE] = function (d) {
    return IfcResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRESOURCEAPPROVALRELATIONSHIP] = function (d) {
    return IfcResourceApprovalRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRESOURCECONSTRAINTRELATIONSHIP] = function (d) {
    return IfcResourceConstraintRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRESOURCELEVELRELATIONSHIP] = function (d) {
    return IfcResourceLevelRelationship.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRESOURCETIME] = function (d) {
    return IfcResourceTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREVOLVEDAREASOLID] = function (d) {
    return IfcRevolvedAreaSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCREVOLVEDAREASOLIDTAPERED] = function (d) {
    return IfcRevolvedAreaSolidTapered.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRIGHTCIRCULARCONE] = function (d) {
    return IfcRightCircularCone.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCRIGHTCIRCULARCYLINDER] = function (d) {
    return IfcRightCircularCylinder.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCROOF] = function (d) {
    return IfcRoof.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCROOFTYPE] = function (d) {
    return IfcRoofType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCROOT] = function (d) {
    return IfcRoot.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCROUNDEDRECTANGLEPROFILEDEF] = function (d) {
    return IfcRoundedRectangleProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSIUNIT] = function (d) {
    return IfcSIUnit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSANITARYTERMINAL] = function (d) {
    return IfcSanitaryTerminal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSANITARYTERMINALTYPE] = function (d) {
    return IfcSanitaryTerminalType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSCHEDULINGTIME] = function (d) {
    return IfcSchedulingTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSEAMCURVE] = function (d) {
    return IfcSeamCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSECTIONPROPERTIES] = function (d) {
    return IfcSectionProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSECTIONREINFORCEMENTPROPERTIES] = function (d) {
    return IfcSectionReinforcementProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSECTIONEDSOLID] = function (d) {
    return IfcSectionedSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSECTIONEDSOLIDHORIZONTAL] = function (d) {
    return IfcSectionedSolidHorizontal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSECTIONEDSPINE] = function (d) {
    return IfcSectionedSpine.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSENSOR] = function (d) {
    return IfcSensor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSENSORTYPE] = function (d) {
    return IfcSensorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSHADINGDEVICE] = function (d) {
    return IfcShadingDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSHADINGDEVICETYPE] = function (d) {
    return IfcShadingDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSHAPEASPECT] = function (d) {
    return IfcShapeAspect.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSHAPEMODEL] = function (d) {
    return IfcShapeModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSHAPEREPRESENTATION] = function (d) {
    return IfcShapeRepresentation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSHELLBASEDSURFACEMODEL] = function (d) {
    return IfcShellBasedSurfaceModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSIMPLEPROPERTY] = function (d) {
    return IfcSimpleProperty.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSIMPLEPROPERTYTEMPLATE] = function (d) {
    return IfcSimplePropertyTemplate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSITE] = function (d) {
    return IfcSite.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSLAB] = function (d) {
    return IfcSlab.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSLABELEMENTEDCASE] = function (d) {
    return IfcSlabElementedCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSLABSTANDARDCASE] = function (d) {
    return IfcSlabStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSLABTYPE] = function (d) {
    return IfcSlabType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSLIPPAGECONNECTIONCONDITION] = function (d) {
    return IfcSlippageConnectionCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSOLARDEVICE] = function (d) {
    return IfcSolarDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSOLARDEVICETYPE] = function (d) {
    return IfcSolarDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSOLIDMODEL] = function (d) {
    return IfcSolidModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPACE] = function (d) {
    return IfcSpace.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPACEHEATER] = function (d) {
    return IfcSpaceHeater.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPACEHEATERTYPE] = function (d) {
    return IfcSpaceHeaterType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPACETYPE] = function (d) {
    return IfcSpaceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPATIALELEMENT] = function (d) {
    return IfcSpatialElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPATIALELEMENTTYPE] = function (d) {
    return IfcSpatialElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPATIALSTRUCTUREELEMENT] = function (d) {
    return IfcSpatialStructureElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPATIALSTRUCTUREELEMENTTYPE] = function (d) {
    return IfcSpatialStructureElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPATIALZONE] = function (d) {
    return IfcSpatialZone.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPATIALZONETYPE] = function (d) {
    return IfcSpatialZoneType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPHERE] = function (d) {
    return IfcSphere.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSPHERICALSURFACE] = function (d) {
    return IfcSphericalSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTACKTERMINAL] = function (d) {
    return IfcStackTerminal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTACKTERMINALTYPE] = function (d) {
    return IfcStackTerminalType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTAIR] = function (d) {
    return IfcStair.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTAIRFLIGHT] = function (d) {
    return IfcStairFlight.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTAIRFLIGHTTYPE] = function (d) {
    return IfcStairFlightType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTAIRTYPE] = function (d) {
    return IfcStairType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALACTION] = function (d) {
    return IfcStructuralAction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALACTIVITY] = function (d) {
    return IfcStructuralActivity.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALANALYSISMODEL] = function (d) {
    return IfcStructuralAnalysisModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCONNECTION] = function (d) {
    return IfcStructuralConnection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCONNECTIONCONDITION] = function (d) {
    return IfcStructuralConnectionCondition.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCURVEACTION] = function (d) {
    return IfcStructuralCurveAction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCURVECONNECTION] = function (d) {
    return IfcStructuralCurveConnection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCURVEMEMBER] = function (d) {
    return IfcStructuralCurveMember.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCURVEMEMBERVARYING] = function (d) {
    return IfcStructuralCurveMemberVarying.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALCURVEREACTION] = function (d) {
    return IfcStructuralCurveReaction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALITEM] = function (d) {
    return IfcStructuralItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLINEARACTION] = function (d) {
    return IfcStructuralLinearAction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOAD] = function (d) {
    return IfcStructuralLoad.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADCASE] = function (d) {
    return IfcStructuralLoadCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADCONFIGURATION] = function (d) {
    return IfcStructuralLoadConfiguration.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADGROUP] = function (d) {
    return IfcStructuralLoadGroup.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADLINEARFORCE] = function (d) {
    return IfcStructuralLoadLinearForce.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADORRESULT] = function (d) {
    return IfcStructuralLoadOrResult.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADPLANARFORCE] = function (d) {
    return IfcStructuralLoadPlanarForce.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADSINGLEDISPLACEMENT] = function (d) {
    return IfcStructuralLoadSingleDisplacement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION] = function (d) {
    return IfcStructuralLoadSingleDisplacementDistortion.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADSINGLEFORCE] = function (d) {
    return IfcStructuralLoadSingleForce.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADSINGLEFORCEWARPING] = function (d) {
    return IfcStructuralLoadSingleForceWarping.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADSTATIC] = function (d) {
    return IfcStructuralLoadStatic.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALLOADTEMPERATURE] = function (d) {
    return IfcStructuralLoadTemperature.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALMEMBER] = function (d) {
    return IfcStructuralMember.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALPLANARACTION] = function (d) {
    return IfcStructuralPlanarAction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALPOINTACTION] = function (d) {
    return IfcStructuralPointAction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALPOINTCONNECTION] = function (d) {
    return IfcStructuralPointConnection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALPOINTREACTION] = function (d) {
    return IfcStructuralPointReaction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALREACTION] = function (d) {
    return IfcStructuralReaction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALRESULTGROUP] = function (d) {
    return IfcStructuralResultGroup.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALSURFACEACTION] = function (d) {
    return IfcStructuralSurfaceAction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALSURFACECONNECTION] = function (d) {
    return IfcStructuralSurfaceConnection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALSURFACEMEMBER] = function (d) {
    return IfcStructuralSurfaceMember.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALSURFACEMEMBERVARYING] = function (d) {
    return IfcStructuralSurfaceMemberVarying.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTRUCTURALSURFACEREACTION] = function (d) {
    return IfcStructuralSurfaceReaction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTYLEMODEL] = function (d) {
    return IfcStyleModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTYLEDITEM] = function (d) {
    return IfcStyledItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSTYLEDREPRESENTATION] = function (d) {
    return IfcStyledRepresentation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSUBCONTRACTRESOURCE] = function (d) {
    return IfcSubContractResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSUBCONTRACTRESOURCETYPE] = function (d) {
    return IfcSubContractResourceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSUBEDGE] = function (d) {
    return IfcSubedge.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACE] = function (d) {
    return IfcSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACECURVE] = function (d) {
    return IfcSurfaceCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACECURVESWEPTAREASOLID] = function (d) {
    return IfcSurfaceCurveSweptAreaSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACEFEATURE] = function (d) {
    return IfcSurfaceFeature.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACEOFLINEAREXTRUSION] = function (d) {
    return IfcSurfaceOfLinearExtrusion.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACEOFREVOLUTION] = function (d) {
    return IfcSurfaceOfRevolution.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACEREINFORCEMENTAREA] = function (d) {
    return IfcSurfaceReinforcementArea.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACESTYLE] = function (d) {
    return IfcSurfaceStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACESTYLELIGHTING] = function (d) {
    return IfcSurfaceStyleLighting.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACESTYLEREFRACTION] = function (d) {
    return IfcSurfaceStyleRefraction.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACESTYLERENDERING] = function (d) {
    return IfcSurfaceStyleRendering.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACESTYLESHADING] = function (d) {
    return IfcSurfaceStyleShading.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACESTYLEWITHTEXTURES] = function (d) {
    return IfcSurfaceStyleWithTextures.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSURFACETEXTURE] = function (d) {
    return IfcSurfaceTexture.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSWEPTAREASOLID] = function (d) {
    return IfcSweptAreaSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSWEPTDISKSOLID] = function (d) {
    return IfcSweptDiskSolid.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSWEPTDISKSOLIDPOLYGONAL] = function (d) {
    return IfcSweptDiskSolidPolygonal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSWEPTSURFACE] = function (d) {
    return IfcSweptSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSWITCHINGDEVICE] = function (d) {
    return IfcSwitchingDevice.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSWITCHINGDEVICETYPE] = function (d) {
    return IfcSwitchingDeviceType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSYSTEM] = function (d) {
    return IfcSystem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSYSTEMFURNITUREELEMENT] = function (d) {
    return IfcSystemFurnitureElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCSYSTEMFURNITUREELEMENTTYPE] = function (d) {
    return IfcSystemFurnitureElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTSHAPEPROFILEDEF] = function (d) {
    return IfcTShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTABLE] = function (d) {
    return IfcTable.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTABLECOLUMN] = function (d) {
    return IfcTableColumn.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTABLEROW] = function (d) {
    return IfcTableRow.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTANK] = function (d) {
    return IfcTank.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTANKTYPE] = function (d) {
    return IfcTankType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTASK] = function (d) {
    return IfcTask.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTASKTIME] = function (d) {
    return IfcTaskTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTASKTIMERECURRING] = function (d) {
    return IfcTaskTimeRecurring.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTASKTYPE] = function (d) {
    return IfcTaskType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTELECOMADDRESS] = function (d) {
    return IfcTelecomAddress.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTENDON] = function (d) {
    return IfcTendon.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTENDONANCHOR] = function (d) {
    return IfcTendonAnchor.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTENDONANCHORTYPE] = function (d) {
    return IfcTendonAnchorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTENDONCONDUIT] = function (d) {
    return IfcTendonConduit.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTENDONCONDUITTYPE] = function (d) {
    return IfcTendonConduitType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTENDONTYPE] = function (d) {
    return IfcTendonType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTESSELLATEDFACESET] = function (d) {
    return IfcTessellatedFaceSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTESSELLATEDITEM] = function (d) {
    return IfcTessellatedItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTLITERAL] = function (d) {
    return IfcTextLiteral.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTLITERALWITHEXTENT] = function (d) {
    return IfcTextLiteralWithExtent.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTSTYLE] = function (d) {
    return IfcTextStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTSTYLEFONTMODEL] = function (d) {
    return IfcTextStyleFontModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTSTYLEFORDEFINEDFONT] = function (d) {
    return IfcTextStyleForDefinedFont.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTSTYLETEXTMODEL] = function (d) {
    return IfcTextStyleTextModel.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTURECOORDINATE] = function (d) {
    return IfcTextureCoordinate.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTURECOORDINATEGENERATOR] = function (d) {
    return IfcTextureCoordinateGenerator.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTUREMAP] = function (d) {
    return IfcTextureMap.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTUREVERTEX] = function (d) {
    return IfcTextureVertex.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTEXTUREVERTEXLIST] = function (d) {
    return IfcTextureVertexList.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTIMEPERIOD] = function (d) {
    return IfcTimePeriod.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTIMESERIES] = function (d) {
    return IfcTimeSeries.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTIMESERIESVALUE] = function (d) {
    return IfcTimeSeriesValue.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTOPOLOGICALREPRESENTATIONITEM] = function (d) {
    return IfcTopologicalRepresentationItem.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTOPOLOGYREPRESENTATION] = function (d) {
    return IfcTopologyRepresentation.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTOROIDALSURFACE] = function (d) {
    return IfcToroidalSurface.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRANSFORMER] = function (d) {
    return IfcTransformer.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRANSFORMERTYPE] = function (d) {
    return IfcTransformerType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRANSITIONCURVESEGMENT2D] = function (d) {
    return IfcTransitionCurveSegment2D.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRANSPORTELEMENT] = function (d) {
    return IfcTransportElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRANSPORTELEMENTTYPE] = function (d) {
    return IfcTransportElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRAPEZIUMPROFILEDEF] = function (d) {
    return IfcTrapeziumProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRIANGULATEDFACESET] = function (d) {
    return IfcTriangulatedFaceSet.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRIANGULATEDIRREGULARNETWORK] = function (d) {
    return IfcTriangulatedIrregularNetwork.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTRIMMEDCURVE] = function (d) {
    return IfcTrimmedCurve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTUBEBUNDLE] = function (d) {
    return IfcTubeBundle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTUBEBUNDLETYPE] = function (d) {
    return IfcTubeBundleType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTYPEOBJECT] = function (d) {
    return IfcTypeObject.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTYPEPROCESS] = function (d) {
    return IfcTypeProcess.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTYPEPRODUCT] = function (d) {
    return IfcTypeProduct.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCTYPERESOURCE] = function (d) {
    return IfcTypeResource.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCUSHAPEPROFILEDEF] = function (d) {
    return IfcUShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCUNITASSIGNMENT] = function (d) {
    return IfcUnitAssignment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCUNITARYCONTROLELEMENT] = function (d) {
    return IfcUnitaryControlElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCUNITARYCONTROLELEMENTTYPE] = function (d) {
    return IfcUnitaryControlElementType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCUNITARYEQUIPMENT] = function (d) {
    return IfcUnitaryEquipment.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCUNITARYEQUIPMENTTYPE] = function (d) {
    return IfcUnitaryEquipmentType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVALVE] = function (d) {
    return IfcValve.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVALVETYPE] = function (d) {
    return IfcValveType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVECTOR] = function (d) {
    return IfcVector.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVERTEX] = function (d) {
    return IfcVertex.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVERTEXLOOP] = function (d) {
    return IfcVertexLoop.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVERTEXPOINT] = function (d) {
    return IfcVertexPoint.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVIBRATIONDAMPER] = function (d) {
    return IfcVibrationDamper.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVIBRATIONDAMPERTYPE] = function (d) {
    return IfcVibrationDamperType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVIBRATIONISOLATOR] = function (d) {
    return IfcVibrationIsolator.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVIBRATIONISOLATORTYPE] = function (d) {
    return IfcVibrationIsolatorType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVIRTUALELEMENT] = function (d) {
    return IfcVirtualElement.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVIRTUALGRIDINTERSECTION] = function (d) {
    return IfcVirtualGridIntersection.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCVOIDINGFEATURE] = function (d) {
    return IfcVoidingFeature.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWALL] = function (d) {
    return IfcWall.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWALLELEMENTEDCASE] = function (d) {
    return IfcWallElementedCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWALLSTANDARDCASE] = function (d) {
    return IfcWallStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWALLTYPE] = function (d) {
    return IfcWallType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWASTETERMINAL] = function (d) {
    return IfcWasteTerminal.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWASTETERMINALTYPE] = function (d) {
    return IfcWasteTerminalType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWINDOW] = function (d) {
    return IfcWindow.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWINDOWLININGPROPERTIES] = function (d) {
    return IfcWindowLiningProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWINDOWPANELPROPERTIES] = function (d) {
    return IfcWindowPanelProperties.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWINDOWSTANDARDCASE] = function (d) {
    return IfcWindowStandardCase.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWINDOWSTYLE] = function (d) {
    return IfcWindowStyle.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWINDOWTYPE] = function (d) {
    return IfcWindowType.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWORKCALENDAR] = function (d) {
    return IfcWorkCalendar.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWORKCONTROL] = function (d) {
    return IfcWorkControl.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWORKPLAN] = function (d) {
    return IfcWorkPlan.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWORKSCHEDULE] = function (d) {
    return IfcWorkSchedule.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCWORKTIME] = function (d) {
    return IfcWorkTime.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCZSHAPEPROFILEDEF] = function (d) {
    return IfcZShapeProfileDef.FromTape(d.ID, d.type, d.arguments);
  };

  FromRawLineData[IFCZONE] = function (d) {
    return IfcZone.FromTape(d.ID, d.type, d.arguments);
  };

  var Handle = /*#__PURE__*/function () {
    function Handle(id) {
      _classCallCheck(this, Handle);

      this.value = id;
    }

    _createClass(Handle, [{
      key: "toTape",
      value: function toTape(args) {
        args.push({
          type: 5,
          value: this.value
        });
      }
    }]);

    return Handle;
  }();

  _exports.Handle = Handle;

  function Value(type, value) {
    return {
      t: type,
      v: value
    };
  }

  var IfcAbsorbedDoseMeasure = /*#__PURE__*/_createClass(function IfcAbsorbedDoseMeasure(v) {
    _classCallCheck(this, IfcAbsorbedDoseMeasure);

    this.value = v;
  });

  _exports.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;

  var IfcAccelerationMeasure = /*#__PURE__*/_createClass(function IfcAccelerationMeasure(v) {
    _classCallCheck(this, IfcAccelerationMeasure);

    this.value = v;
  });

  _exports.IfcAccelerationMeasure = IfcAccelerationMeasure;

  var IfcAmountOfSubstanceMeasure = /*#__PURE__*/_createClass(function IfcAmountOfSubstanceMeasure(v) {
    _classCallCheck(this, IfcAmountOfSubstanceMeasure);

    this.value = v;
  });

  _exports.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;

  var IfcAngularVelocityMeasure = /*#__PURE__*/_createClass(function IfcAngularVelocityMeasure(v) {
    _classCallCheck(this, IfcAngularVelocityMeasure);

    this.value = v;
  });

  _exports.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;

  var IfcAreaDensityMeasure = /*#__PURE__*/_createClass(function IfcAreaDensityMeasure(v) {
    _classCallCheck(this, IfcAreaDensityMeasure);

    this.value = v;
  });

  _exports.IfcAreaDensityMeasure = IfcAreaDensityMeasure;

  var IfcAreaMeasure = /*#__PURE__*/_createClass(function IfcAreaMeasure(v) {
    _classCallCheck(this, IfcAreaMeasure);

    this.value = v;
  });

  _exports.IfcAreaMeasure = IfcAreaMeasure;

  var IfcBinary = /*#__PURE__*/_createClass(function IfcBinary(v) {
    _classCallCheck(this, IfcBinary);

    this.value = v;
  });

  _exports.IfcBinary = IfcBinary;

  var IfcBoolean = /*#__PURE__*/_createClass(function IfcBoolean(v) {
    _classCallCheck(this, IfcBoolean);

    this.value = v;
  });

  _exports.IfcBoolean = IfcBoolean;

  var IfcBoxAlignment = /*#__PURE__*/_createClass(function IfcBoxAlignment(v) {
    _classCallCheck(this, IfcBoxAlignment);

    this.value = v;
  });

  _exports.IfcBoxAlignment = IfcBoxAlignment;

  var IfcCardinalPointReference = /*#__PURE__*/_createClass(function IfcCardinalPointReference(v) {
    _classCallCheck(this, IfcCardinalPointReference);

    this.value = v;
  });

  _exports.IfcCardinalPointReference = IfcCardinalPointReference;

  var IfcContextDependentMeasure = /*#__PURE__*/_createClass(function IfcContextDependentMeasure(v) {
    _classCallCheck(this, IfcContextDependentMeasure);

    this.value = v;
  });

  _exports.IfcContextDependentMeasure = IfcContextDependentMeasure;

  var IfcCountMeasure = /*#__PURE__*/_createClass(function IfcCountMeasure(v) {
    _classCallCheck(this, IfcCountMeasure);

    this.value = v;
  });

  _exports.IfcCountMeasure = IfcCountMeasure;

  var IfcCurvatureMeasure = /*#__PURE__*/_createClass(function IfcCurvatureMeasure(v) {
    _classCallCheck(this, IfcCurvatureMeasure);

    this.value = v;
  });

  _exports.IfcCurvatureMeasure = IfcCurvatureMeasure;

  var IfcDate = /*#__PURE__*/_createClass(function IfcDate(v) {
    _classCallCheck(this, IfcDate);

    this.value = v;
  });

  _exports.IfcDate = IfcDate;

  var IfcDateTime = /*#__PURE__*/_createClass(function IfcDateTime(v) {
    _classCallCheck(this, IfcDateTime);

    this.value = v;
  });

  _exports.IfcDateTime = IfcDateTime;

  var IfcDayInMonthNumber = /*#__PURE__*/_createClass(function IfcDayInMonthNumber(v) {
    _classCallCheck(this, IfcDayInMonthNumber);

    this.value = v;
  });

  _exports.IfcDayInMonthNumber = IfcDayInMonthNumber;

  var IfcDayInWeekNumber = /*#__PURE__*/_createClass(function IfcDayInWeekNumber(v) {
    _classCallCheck(this, IfcDayInWeekNumber);

    this.value = v;
  });

  _exports.IfcDayInWeekNumber = IfcDayInWeekNumber;

  var IfcDescriptiveMeasure = /*#__PURE__*/_createClass(function IfcDescriptiveMeasure(v) {
    _classCallCheck(this, IfcDescriptiveMeasure);

    this.value = v;
  });

  _exports.IfcDescriptiveMeasure = IfcDescriptiveMeasure;

  var IfcDimensionCount = /*#__PURE__*/_createClass(function IfcDimensionCount(v) {
    _classCallCheck(this, IfcDimensionCount);

    this.value = v;
  });

  _exports.IfcDimensionCount = IfcDimensionCount;

  var IfcDoseEquivalentMeasure = /*#__PURE__*/_createClass(function IfcDoseEquivalentMeasure(v) {
    _classCallCheck(this, IfcDoseEquivalentMeasure);

    this.value = v;
  });

  _exports.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;

  var IfcDuration = /*#__PURE__*/_createClass(function IfcDuration(v) {
    _classCallCheck(this, IfcDuration);

    this.value = v;
  });

  _exports.IfcDuration = IfcDuration;

  var IfcDynamicViscosityMeasure = /*#__PURE__*/_createClass(function IfcDynamicViscosityMeasure(v) {
    _classCallCheck(this, IfcDynamicViscosityMeasure);

    this.value = v;
  });

  _exports.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;

  var IfcElectricCapacitanceMeasure = /*#__PURE__*/_createClass(function IfcElectricCapacitanceMeasure(v) {
    _classCallCheck(this, IfcElectricCapacitanceMeasure);

    this.value = v;
  });

  _exports.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;

  var IfcElectricChargeMeasure = /*#__PURE__*/_createClass(function IfcElectricChargeMeasure(v) {
    _classCallCheck(this, IfcElectricChargeMeasure);

    this.value = v;
  });

  _exports.IfcElectricChargeMeasure = IfcElectricChargeMeasure;

  var IfcElectricConductanceMeasure = /*#__PURE__*/_createClass(function IfcElectricConductanceMeasure(v) {
    _classCallCheck(this, IfcElectricConductanceMeasure);

    this.value = v;
  });

  _exports.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;

  var IfcElectricCurrentMeasure = /*#__PURE__*/_createClass(function IfcElectricCurrentMeasure(v) {
    _classCallCheck(this, IfcElectricCurrentMeasure);

    this.value = v;
  });

  _exports.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;

  var IfcElectricResistanceMeasure = /*#__PURE__*/_createClass(function IfcElectricResistanceMeasure(v) {
    _classCallCheck(this, IfcElectricResistanceMeasure);

    this.value = v;
  });

  _exports.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;

  var IfcElectricVoltageMeasure = /*#__PURE__*/_createClass(function IfcElectricVoltageMeasure(v) {
    _classCallCheck(this, IfcElectricVoltageMeasure);

    this.value = v;
  });

  _exports.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;

  var IfcEnergyMeasure = /*#__PURE__*/_createClass(function IfcEnergyMeasure(v) {
    _classCallCheck(this, IfcEnergyMeasure);

    this.value = v;
  });

  _exports.IfcEnergyMeasure = IfcEnergyMeasure;

  var IfcFontStyle = /*#__PURE__*/_createClass(function IfcFontStyle(v) {
    _classCallCheck(this, IfcFontStyle);

    this.value = v;
  });

  _exports.IfcFontStyle = IfcFontStyle;

  var IfcFontVariant = /*#__PURE__*/_createClass(function IfcFontVariant(v) {
    _classCallCheck(this, IfcFontVariant);

    this.value = v;
  });

  _exports.IfcFontVariant = IfcFontVariant;

  var IfcFontWeight = /*#__PURE__*/_createClass(function IfcFontWeight(v) {
    _classCallCheck(this, IfcFontWeight);

    this.value = v;
  });

  _exports.IfcFontWeight = IfcFontWeight;

  var IfcForceMeasure = /*#__PURE__*/_createClass(function IfcForceMeasure(v) {
    _classCallCheck(this, IfcForceMeasure);

    this.value = v;
  });

  _exports.IfcForceMeasure = IfcForceMeasure;

  var IfcFrequencyMeasure = /*#__PURE__*/_createClass(function IfcFrequencyMeasure(v) {
    _classCallCheck(this, IfcFrequencyMeasure);

    this.value = v;
  });

  _exports.IfcFrequencyMeasure = IfcFrequencyMeasure;

  var IfcGloballyUniqueId = /*#__PURE__*/_createClass(function IfcGloballyUniqueId(v) {
    _classCallCheck(this, IfcGloballyUniqueId);

    this.value = v;
  });

  _exports.IfcGloballyUniqueId = IfcGloballyUniqueId;

  var IfcHeatFluxDensityMeasure = /*#__PURE__*/_createClass(function IfcHeatFluxDensityMeasure(v) {
    _classCallCheck(this, IfcHeatFluxDensityMeasure);

    this.value = v;
  });

  _exports.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;

  var IfcHeatingValueMeasure = /*#__PURE__*/_createClass(function IfcHeatingValueMeasure(v) {
    _classCallCheck(this, IfcHeatingValueMeasure);

    this.value = v;
  });

  _exports.IfcHeatingValueMeasure = IfcHeatingValueMeasure;

  var IfcIdentifier = /*#__PURE__*/_createClass(function IfcIdentifier(v) {
    _classCallCheck(this, IfcIdentifier);

    this.value = v;
  });

  _exports.IfcIdentifier = IfcIdentifier;

  var IfcIlluminanceMeasure = /*#__PURE__*/_createClass(function IfcIlluminanceMeasure(v) {
    _classCallCheck(this, IfcIlluminanceMeasure);

    this.value = v;
  });

  _exports.IfcIlluminanceMeasure = IfcIlluminanceMeasure;

  var IfcInductanceMeasure = /*#__PURE__*/_createClass(function IfcInductanceMeasure(v) {
    _classCallCheck(this, IfcInductanceMeasure);

    this.value = v;
  });

  _exports.IfcInductanceMeasure = IfcInductanceMeasure;

  var IfcInteger = /*#__PURE__*/_createClass(function IfcInteger(v) {
    _classCallCheck(this, IfcInteger);

    this.value = v;
  });

  _exports.IfcInteger = IfcInteger;

  var IfcIntegerCountRateMeasure = /*#__PURE__*/_createClass(function IfcIntegerCountRateMeasure(v) {
    _classCallCheck(this, IfcIntegerCountRateMeasure);

    this.value = v;
  });

  _exports.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;

  var IfcIonConcentrationMeasure = /*#__PURE__*/_createClass(function IfcIonConcentrationMeasure(v) {
    _classCallCheck(this, IfcIonConcentrationMeasure);

    this.value = v;
  });

  _exports.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;

  var IfcIsothermalMoistureCapacityMeasure = /*#__PURE__*/_createClass(function IfcIsothermalMoistureCapacityMeasure(v) {
    _classCallCheck(this, IfcIsothermalMoistureCapacityMeasure);

    this.value = v;
  });

  _exports.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;

  var IfcKinematicViscosityMeasure = /*#__PURE__*/_createClass(function IfcKinematicViscosityMeasure(v) {
    _classCallCheck(this, IfcKinematicViscosityMeasure);

    this.value = v;
  });

  _exports.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;

  var IfcLabel = /*#__PURE__*/_createClass(function IfcLabel(v) {
    _classCallCheck(this, IfcLabel);

    this.value = v;
  });

  _exports.IfcLabel = IfcLabel;

  var IfcLanguageId = /*#__PURE__*/_createClass(function IfcLanguageId(v) {
    _classCallCheck(this, IfcLanguageId);

    this.value = v;
  });

  _exports.IfcLanguageId = IfcLanguageId;

  var IfcLengthMeasure = /*#__PURE__*/_createClass(function IfcLengthMeasure(v) {
    _classCallCheck(this, IfcLengthMeasure);

    this.value = v;
  });

  _exports.IfcLengthMeasure = IfcLengthMeasure;

  var IfcLinearForceMeasure = /*#__PURE__*/_createClass(function IfcLinearForceMeasure(v) {
    _classCallCheck(this, IfcLinearForceMeasure);

    this.value = v;
  });

  _exports.IfcLinearForceMeasure = IfcLinearForceMeasure;

  var IfcLinearMomentMeasure = /*#__PURE__*/_createClass(function IfcLinearMomentMeasure(v) {
    _classCallCheck(this, IfcLinearMomentMeasure);

    this.value = v;
  });

  _exports.IfcLinearMomentMeasure = IfcLinearMomentMeasure;

  var IfcLinearStiffnessMeasure = /*#__PURE__*/_createClass(function IfcLinearStiffnessMeasure(v) {
    _classCallCheck(this, IfcLinearStiffnessMeasure);

    this.value = v;
  });

  _exports.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;

  var IfcLinearVelocityMeasure = /*#__PURE__*/_createClass(function IfcLinearVelocityMeasure(v) {
    _classCallCheck(this, IfcLinearVelocityMeasure);

    this.value = v;
  });

  _exports.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;

  var IfcLogical = /*#__PURE__*/_createClass(function IfcLogical(v) {
    _classCallCheck(this, IfcLogical);

    this.value = v;
  });

  _exports.IfcLogical = IfcLogical;

  var IfcLuminousFluxMeasure = /*#__PURE__*/_createClass(function IfcLuminousFluxMeasure(v) {
    _classCallCheck(this, IfcLuminousFluxMeasure);

    this.value = v;
  });

  _exports.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;

  var IfcLuminousIntensityDistributionMeasure = /*#__PURE__*/_createClass(function IfcLuminousIntensityDistributionMeasure(v) {
    _classCallCheck(this, IfcLuminousIntensityDistributionMeasure);

    this.value = v;
  });

  _exports.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;

  var IfcLuminousIntensityMeasure = /*#__PURE__*/_createClass(function IfcLuminousIntensityMeasure(v) {
    _classCallCheck(this, IfcLuminousIntensityMeasure);

    this.value = v;
  });

  _exports.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;

  var IfcMagneticFluxDensityMeasure = /*#__PURE__*/_createClass(function IfcMagneticFluxDensityMeasure(v) {
    _classCallCheck(this, IfcMagneticFluxDensityMeasure);

    this.value = v;
  });

  _exports.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;

  var IfcMagneticFluxMeasure = /*#__PURE__*/_createClass(function IfcMagneticFluxMeasure(v) {
    _classCallCheck(this, IfcMagneticFluxMeasure);

    this.value = v;
  });

  _exports.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;

  var IfcMassDensityMeasure = /*#__PURE__*/_createClass(function IfcMassDensityMeasure(v) {
    _classCallCheck(this, IfcMassDensityMeasure);

    this.value = v;
  });

  _exports.IfcMassDensityMeasure = IfcMassDensityMeasure;

  var IfcMassFlowRateMeasure = /*#__PURE__*/_createClass(function IfcMassFlowRateMeasure(v) {
    _classCallCheck(this, IfcMassFlowRateMeasure);

    this.value = v;
  });

  _exports.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;

  var IfcMassMeasure = /*#__PURE__*/_createClass(function IfcMassMeasure(v) {
    _classCallCheck(this, IfcMassMeasure);

    this.value = v;
  });

  _exports.IfcMassMeasure = IfcMassMeasure;

  var IfcMassPerLengthMeasure = /*#__PURE__*/_createClass(function IfcMassPerLengthMeasure(v) {
    _classCallCheck(this, IfcMassPerLengthMeasure);

    this.value = v;
  });

  _exports.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;

  var IfcModulusOfElasticityMeasure = /*#__PURE__*/_createClass(function IfcModulusOfElasticityMeasure(v) {
    _classCallCheck(this, IfcModulusOfElasticityMeasure);

    this.value = v;
  });

  _exports.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;

  var IfcModulusOfLinearSubgradeReactionMeasure = /*#__PURE__*/_createClass(function IfcModulusOfLinearSubgradeReactionMeasure(v) {
    _classCallCheck(this, IfcModulusOfLinearSubgradeReactionMeasure);

    this.value = v;
  });

  _exports.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;

  var IfcModulusOfRotationalSubgradeReactionMeasure = /*#__PURE__*/_createClass(function IfcModulusOfRotationalSubgradeReactionMeasure(v) {
    _classCallCheck(this, IfcModulusOfRotationalSubgradeReactionMeasure);

    this.value = v;
  });

  _exports.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;

  var IfcModulusOfSubgradeReactionMeasure = /*#__PURE__*/_createClass(function IfcModulusOfSubgradeReactionMeasure(v) {
    _classCallCheck(this, IfcModulusOfSubgradeReactionMeasure);

    this.value = v;
  });

  _exports.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;

  var IfcMoistureDiffusivityMeasure = /*#__PURE__*/_createClass(function IfcMoistureDiffusivityMeasure(v) {
    _classCallCheck(this, IfcMoistureDiffusivityMeasure);

    this.value = v;
  });

  _exports.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;

  var IfcMolecularWeightMeasure = /*#__PURE__*/_createClass(function IfcMolecularWeightMeasure(v) {
    _classCallCheck(this, IfcMolecularWeightMeasure);

    this.value = v;
  });

  _exports.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;

  var IfcMomentOfInertiaMeasure = /*#__PURE__*/_createClass(function IfcMomentOfInertiaMeasure(v) {
    _classCallCheck(this, IfcMomentOfInertiaMeasure);

    this.value = v;
  });

  _exports.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;

  var IfcMonetaryMeasure = /*#__PURE__*/_createClass(function IfcMonetaryMeasure(v) {
    _classCallCheck(this, IfcMonetaryMeasure);

    this.value = v;
  });

  _exports.IfcMonetaryMeasure = IfcMonetaryMeasure;

  var IfcMonthInYearNumber = /*#__PURE__*/_createClass(function IfcMonthInYearNumber(v) {
    _classCallCheck(this, IfcMonthInYearNumber);

    this.value = v;
  });

  _exports.IfcMonthInYearNumber = IfcMonthInYearNumber;

  var IfcNonNegativeLengthMeasure = /*#__PURE__*/_createClass(function IfcNonNegativeLengthMeasure(v) {
    _classCallCheck(this, IfcNonNegativeLengthMeasure);

    this.value = v;
  });

  _exports.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;

  var IfcNormalisedRatioMeasure = /*#__PURE__*/_createClass(function IfcNormalisedRatioMeasure(v) {
    _classCallCheck(this, IfcNormalisedRatioMeasure);

    this.value = v;
  });

  _exports.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;

  var IfcNumericMeasure = /*#__PURE__*/_createClass(function IfcNumericMeasure(v) {
    _classCallCheck(this, IfcNumericMeasure);

    this.value = v;
  });

  _exports.IfcNumericMeasure = IfcNumericMeasure;

  var IfcPHMeasure = /*#__PURE__*/_createClass(function IfcPHMeasure(v) {
    _classCallCheck(this, IfcPHMeasure);

    this.value = v;
  });

  _exports.IfcPHMeasure = IfcPHMeasure;

  var IfcParameterValue = /*#__PURE__*/_createClass(function IfcParameterValue(v) {
    _classCallCheck(this, IfcParameterValue);

    this.value = v;
  });

  _exports.IfcParameterValue = IfcParameterValue;

  var IfcPlanarForceMeasure = /*#__PURE__*/_createClass(function IfcPlanarForceMeasure(v) {
    _classCallCheck(this, IfcPlanarForceMeasure);

    this.value = v;
  });

  _exports.IfcPlanarForceMeasure = IfcPlanarForceMeasure;

  var IfcPlaneAngleMeasure = /*#__PURE__*/_createClass(function IfcPlaneAngleMeasure(v) {
    _classCallCheck(this, IfcPlaneAngleMeasure);

    this.value = v;
  });

  _exports.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;

  var IfcPositiveInteger = /*#__PURE__*/_createClass(function IfcPositiveInteger(v) {
    _classCallCheck(this, IfcPositiveInteger);

    this.value = v;
  });

  _exports.IfcPositiveInteger = IfcPositiveInteger;

  var IfcPositiveLengthMeasure = /*#__PURE__*/_createClass(function IfcPositiveLengthMeasure(v) {
    _classCallCheck(this, IfcPositiveLengthMeasure);

    this.value = v;
  });

  _exports.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;

  var IfcPositivePlaneAngleMeasure = /*#__PURE__*/_createClass(function IfcPositivePlaneAngleMeasure(v) {
    _classCallCheck(this, IfcPositivePlaneAngleMeasure);

    this.value = v;
  });

  _exports.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;

  var IfcPositiveRatioMeasure = /*#__PURE__*/_createClass(function IfcPositiveRatioMeasure(v) {
    _classCallCheck(this, IfcPositiveRatioMeasure);

    this.value = v;
  });

  _exports.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;

  var IfcPowerMeasure = /*#__PURE__*/_createClass(function IfcPowerMeasure(v) {
    _classCallCheck(this, IfcPowerMeasure);

    this.value = v;
  });

  _exports.IfcPowerMeasure = IfcPowerMeasure;

  var IfcPresentableText = /*#__PURE__*/_createClass(function IfcPresentableText(v) {
    _classCallCheck(this, IfcPresentableText);

    this.value = v;
  });

  _exports.IfcPresentableText = IfcPresentableText;

  var IfcPressureMeasure = /*#__PURE__*/_createClass(function IfcPressureMeasure(v) {
    _classCallCheck(this, IfcPressureMeasure);

    this.value = v;
  });

  _exports.IfcPressureMeasure = IfcPressureMeasure;

  var IfcRadioActivityMeasure = /*#__PURE__*/_createClass(function IfcRadioActivityMeasure(v) {
    _classCallCheck(this, IfcRadioActivityMeasure);

    this.value = v;
  });

  _exports.IfcRadioActivityMeasure = IfcRadioActivityMeasure;

  var IfcRatioMeasure = /*#__PURE__*/_createClass(function IfcRatioMeasure(v) {
    _classCallCheck(this, IfcRatioMeasure);

    this.value = v;
  });

  _exports.IfcRatioMeasure = IfcRatioMeasure;

  var IfcReal = /*#__PURE__*/_createClass(function IfcReal(v) {
    _classCallCheck(this, IfcReal);

    this.value = v;
  });

  _exports.IfcReal = IfcReal;

  var IfcRotationalFrequencyMeasure = /*#__PURE__*/_createClass(function IfcRotationalFrequencyMeasure(v) {
    _classCallCheck(this, IfcRotationalFrequencyMeasure);

    this.value = v;
  });

  _exports.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;

  var IfcRotationalMassMeasure = /*#__PURE__*/_createClass(function IfcRotationalMassMeasure(v) {
    _classCallCheck(this, IfcRotationalMassMeasure);

    this.value = v;
  });

  _exports.IfcRotationalMassMeasure = IfcRotationalMassMeasure;

  var IfcRotationalStiffnessMeasure = /*#__PURE__*/_createClass(function IfcRotationalStiffnessMeasure(v) {
    _classCallCheck(this, IfcRotationalStiffnessMeasure);

    this.value = v;
  });

  _exports.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;

  var IfcSectionModulusMeasure = /*#__PURE__*/_createClass(function IfcSectionModulusMeasure(v) {
    _classCallCheck(this, IfcSectionModulusMeasure);

    this.value = v;
  });

  _exports.IfcSectionModulusMeasure = IfcSectionModulusMeasure;

  var IfcSectionalAreaIntegralMeasure = /*#__PURE__*/_createClass(function IfcSectionalAreaIntegralMeasure(v) {
    _classCallCheck(this, IfcSectionalAreaIntegralMeasure);

    this.value = v;
  });

  _exports.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;

  var IfcShearModulusMeasure = /*#__PURE__*/_createClass(function IfcShearModulusMeasure(v) {
    _classCallCheck(this, IfcShearModulusMeasure);

    this.value = v;
  });

  _exports.IfcShearModulusMeasure = IfcShearModulusMeasure;

  var IfcSolidAngleMeasure = /*#__PURE__*/_createClass(function IfcSolidAngleMeasure(v) {
    _classCallCheck(this, IfcSolidAngleMeasure);

    this.value = v;
  });

  _exports.IfcSolidAngleMeasure = IfcSolidAngleMeasure;

  var IfcSoundPowerLevelMeasure = /*#__PURE__*/_createClass(function IfcSoundPowerLevelMeasure(v) {
    _classCallCheck(this, IfcSoundPowerLevelMeasure);

    this.value = v;
  });

  _exports.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;

  var IfcSoundPowerMeasure = /*#__PURE__*/_createClass(function IfcSoundPowerMeasure(v) {
    _classCallCheck(this, IfcSoundPowerMeasure);

    this.value = v;
  });

  _exports.IfcSoundPowerMeasure = IfcSoundPowerMeasure;

  var IfcSoundPressureLevelMeasure = /*#__PURE__*/_createClass(function IfcSoundPressureLevelMeasure(v) {
    _classCallCheck(this, IfcSoundPressureLevelMeasure);

    this.value = v;
  });

  _exports.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;

  var IfcSoundPressureMeasure = /*#__PURE__*/_createClass(function IfcSoundPressureMeasure(v) {
    _classCallCheck(this, IfcSoundPressureMeasure);

    this.value = v;
  });

  _exports.IfcSoundPressureMeasure = IfcSoundPressureMeasure;

  var IfcSpecificHeatCapacityMeasure = /*#__PURE__*/_createClass(function IfcSpecificHeatCapacityMeasure(v) {
    _classCallCheck(this, IfcSpecificHeatCapacityMeasure);

    this.value = v;
  });

  _exports.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;

  var IfcSpecularExponent = /*#__PURE__*/_createClass(function IfcSpecularExponent(v) {
    _classCallCheck(this, IfcSpecularExponent);

    this.value = v;
  });

  _exports.IfcSpecularExponent = IfcSpecularExponent;

  var IfcSpecularRoughness = /*#__PURE__*/_createClass(function IfcSpecularRoughness(v) {
    _classCallCheck(this, IfcSpecularRoughness);

    this.value = v;
  });

  _exports.IfcSpecularRoughness = IfcSpecularRoughness;

  var IfcTemperatureGradientMeasure = /*#__PURE__*/_createClass(function IfcTemperatureGradientMeasure(v) {
    _classCallCheck(this, IfcTemperatureGradientMeasure);

    this.value = v;
  });

  _exports.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;

  var IfcTemperatureRateOfChangeMeasure = /*#__PURE__*/_createClass(function IfcTemperatureRateOfChangeMeasure(v) {
    _classCallCheck(this, IfcTemperatureRateOfChangeMeasure);

    this.value = v;
  });

  _exports.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;

  var IfcText = /*#__PURE__*/_createClass(function IfcText(v) {
    _classCallCheck(this, IfcText);

    this.value = v;
  });

  _exports.IfcText = IfcText;

  var IfcTextAlignment = /*#__PURE__*/_createClass(function IfcTextAlignment(v) {
    _classCallCheck(this, IfcTextAlignment);

    this.value = v;
  });

  _exports.IfcTextAlignment = IfcTextAlignment;

  var IfcTextDecoration = /*#__PURE__*/_createClass(function IfcTextDecoration(v) {
    _classCallCheck(this, IfcTextDecoration);

    this.value = v;
  });

  _exports.IfcTextDecoration = IfcTextDecoration;

  var IfcTextFontName = /*#__PURE__*/_createClass(function IfcTextFontName(v) {
    _classCallCheck(this, IfcTextFontName);

    this.value = v;
  });

  _exports.IfcTextFontName = IfcTextFontName;

  var IfcTextTransformation = /*#__PURE__*/_createClass(function IfcTextTransformation(v) {
    _classCallCheck(this, IfcTextTransformation);

    this.value = v;
  });

  _exports.IfcTextTransformation = IfcTextTransformation;

  var IfcThermalAdmittanceMeasure = /*#__PURE__*/_createClass(function IfcThermalAdmittanceMeasure(v) {
    _classCallCheck(this, IfcThermalAdmittanceMeasure);

    this.value = v;
  });

  _exports.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;

  var IfcThermalConductivityMeasure = /*#__PURE__*/_createClass(function IfcThermalConductivityMeasure(v) {
    _classCallCheck(this, IfcThermalConductivityMeasure);

    this.value = v;
  });

  _exports.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;

  var IfcThermalExpansionCoefficientMeasure = /*#__PURE__*/_createClass(function IfcThermalExpansionCoefficientMeasure(v) {
    _classCallCheck(this, IfcThermalExpansionCoefficientMeasure);

    this.value = v;
  });

  _exports.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;

  var IfcThermalResistanceMeasure = /*#__PURE__*/_createClass(function IfcThermalResistanceMeasure(v) {
    _classCallCheck(this, IfcThermalResistanceMeasure);

    this.value = v;
  });

  _exports.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;

  var IfcThermalTransmittanceMeasure = /*#__PURE__*/_createClass(function IfcThermalTransmittanceMeasure(v) {
    _classCallCheck(this, IfcThermalTransmittanceMeasure);

    this.value = v;
  });

  _exports.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;

  var IfcThermodynamicTemperatureMeasure = /*#__PURE__*/_createClass(function IfcThermodynamicTemperatureMeasure(v) {
    _classCallCheck(this, IfcThermodynamicTemperatureMeasure);

    this.value = v;
  });

  _exports.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;

  var IfcTime = /*#__PURE__*/_createClass(function IfcTime(v) {
    _classCallCheck(this, IfcTime);

    this.value = v;
  });

  _exports.IfcTime = IfcTime;

  var IfcTimeMeasure = /*#__PURE__*/_createClass(function IfcTimeMeasure(v) {
    _classCallCheck(this, IfcTimeMeasure);

    this.value = v;
  });

  _exports.IfcTimeMeasure = IfcTimeMeasure;

  var IfcTimeStamp = /*#__PURE__*/_createClass(function IfcTimeStamp(v) {
    _classCallCheck(this, IfcTimeStamp);

    this.value = v;
  });

  _exports.IfcTimeStamp = IfcTimeStamp;

  var IfcTorqueMeasure = /*#__PURE__*/_createClass(function IfcTorqueMeasure(v) {
    _classCallCheck(this, IfcTorqueMeasure);

    this.value = v;
  });

  _exports.IfcTorqueMeasure = IfcTorqueMeasure;

  var IfcURIReference = /*#__PURE__*/_createClass(function IfcURIReference(v) {
    _classCallCheck(this, IfcURIReference);

    this.value = v;
  });

  _exports.IfcURIReference = IfcURIReference;

  var IfcVaporPermeabilityMeasure = /*#__PURE__*/_createClass(function IfcVaporPermeabilityMeasure(v) {
    _classCallCheck(this, IfcVaporPermeabilityMeasure);

    this.value = v;
  });

  _exports.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;

  var IfcVolumeMeasure = /*#__PURE__*/_createClass(function IfcVolumeMeasure(v) {
    _classCallCheck(this, IfcVolumeMeasure);

    this.value = v;
  });

  _exports.IfcVolumeMeasure = IfcVolumeMeasure;

  var IfcVolumetricFlowRateMeasure = /*#__PURE__*/_createClass(function IfcVolumetricFlowRateMeasure(v) {
    _classCallCheck(this, IfcVolumetricFlowRateMeasure);

    this.value = v;
  });

  _exports.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;

  var IfcWarpingConstantMeasure = /*#__PURE__*/_createClass(function IfcWarpingConstantMeasure(v) {
    _classCallCheck(this, IfcWarpingConstantMeasure);

    this.value = v;
  });

  _exports.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;

  var IfcWarpingMomentMeasure = /*#__PURE__*/_createClass(function IfcWarpingMomentMeasure(v) {
    _classCallCheck(this, IfcWarpingMomentMeasure);

    this.value = v;
  });

  _exports.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;

  var IfcActionRequestTypeEnum = /*#__PURE__*/_createClass(function IfcActionRequestTypeEnum(v) {
    _classCallCheck(this, IfcActionRequestTypeEnum);

    this.value = v;
  });

  _exports.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;
  IfcActionRequestTypeEnum.EMAIL = "EMAIL";
  IfcActionRequestTypeEnum.FAX = "FAX";
  IfcActionRequestTypeEnum.PHONE = "PHONE";
  IfcActionRequestTypeEnum.POST = "POST";
  IfcActionRequestTypeEnum.VERBAL = "VERBAL";
  IfcActionRequestTypeEnum.USERDEFINED = "USERDEFINED";
  IfcActionRequestTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcActionSourceTypeEnum = /*#__PURE__*/_createClass(function IfcActionSourceTypeEnum(v) {
    _classCallCheck(this, IfcActionSourceTypeEnum);

    this.value = v;
  });

  _exports.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;
  IfcActionSourceTypeEnum.DEAD_LOAD_G = "DEAD_LOAD_G";
  IfcActionSourceTypeEnum.COMPLETION_G1 = "COMPLETION_G1";
  IfcActionSourceTypeEnum.LIVE_LOAD_Q = "LIVE_LOAD_Q";
  IfcActionSourceTypeEnum.SNOW_S = "SNOW_S";
  IfcActionSourceTypeEnum.WIND_W = "WIND_W";
  IfcActionSourceTypeEnum.PRESTRESSING_P = "PRESTRESSING_P";
  IfcActionSourceTypeEnum.SETTLEMENT_U = "SETTLEMENT_U";
  IfcActionSourceTypeEnum.TEMPERATURE_T = "TEMPERATURE_T";
  IfcActionSourceTypeEnum.EARTHQUAKE_E = "EARTHQUAKE_E";
  IfcActionSourceTypeEnum.FIRE = "FIRE";
  IfcActionSourceTypeEnum.IMPULSE = "IMPULSE";
  IfcActionSourceTypeEnum.IMPACT = "IMPACT";
  IfcActionSourceTypeEnum.TRANSPORT = "TRANSPORT";
  IfcActionSourceTypeEnum.ERECTION = "ERECTION";
  IfcActionSourceTypeEnum.PROPPING = "PROPPING";
  IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = "SYSTEM_IMPERFECTION";
  IfcActionSourceTypeEnum.SHRINKAGE = "SHRINKAGE";
  IfcActionSourceTypeEnum.CREEP = "CREEP";
  IfcActionSourceTypeEnum.LACK_OF_FIT = "LACK_OF_FIT";
  IfcActionSourceTypeEnum.BUOYANCY = "BUOYANCY";
  IfcActionSourceTypeEnum.ICE = "ICE";
  IfcActionSourceTypeEnum.CURRENT = "CURRENT";
  IfcActionSourceTypeEnum.WAVE = "WAVE";
  IfcActionSourceTypeEnum.RAIN = "RAIN";
  IfcActionSourceTypeEnum.BRAKES = "BRAKES";
  IfcActionSourceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcActionSourceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcActionTypeEnum = /*#__PURE__*/_createClass(function IfcActionTypeEnum(v) {
    _classCallCheck(this, IfcActionTypeEnum);

    this.value = v;
  });

  _exports.IfcActionTypeEnum = IfcActionTypeEnum;
  IfcActionTypeEnum.PERMANENT_G = "PERMANENT_G";
  IfcActionTypeEnum.VARIABLE_Q = "VARIABLE_Q";
  IfcActionTypeEnum.EXTRAORDINARY_A = "EXTRAORDINARY_A";
  IfcActionTypeEnum.USERDEFINED = "USERDEFINED";
  IfcActionTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcActuatorTypeEnum = /*#__PURE__*/_createClass(function IfcActuatorTypeEnum(v) {
    _classCallCheck(this, IfcActuatorTypeEnum);

    this.value = v;
  });

  _exports.IfcActuatorTypeEnum = IfcActuatorTypeEnum;
  IfcActuatorTypeEnum.ELECTRICACTUATOR = "ELECTRICACTUATOR";
  IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = "HANDOPERATEDACTUATOR";
  IfcActuatorTypeEnum.HYDRAULICACTUATOR = "HYDRAULICACTUATOR";
  IfcActuatorTypeEnum.PNEUMATICACTUATOR = "PNEUMATICACTUATOR";
  IfcActuatorTypeEnum.THERMOSTATICACTUATOR = "THERMOSTATICACTUATOR";
  IfcActuatorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcActuatorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAddressTypeEnum = /*#__PURE__*/_createClass(function IfcAddressTypeEnum(v) {
    _classCallCheck(this, IfcAddressTypeEnum);

    this.value = v;
  });

  _exports.IfcAddressTypeEnum = IfcAddressTypeEnum;
  IfcAddressTypeEnum.OFFICE = "OFFICE";
  IfcAddressTypeEnum.SITE = "SITE";
  IfcAddressTypeEnum.HOME = "HOME";
  IfcAddressTypeEnum.DISTRIBUTIONPOINT = "DISTRIBUTIONPOINT";
  IfcAddressTypeEnum.USERDEFINED = "USERDEFINED";

  var IfcAirTerminalBoxTypeEnum = /*#__PURE__*/_createClass(function IfcAirTerminalBoxTypeEnum(v) {
    _classCallCheck(this, IfcAirTerminalBoxTypeEnum);

    this.value = v;
  });

  _exports.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;
  IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = "CONSTANTFLOW";
  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = "VARIABLEFLOWPRESSUREDEPENDANT";
  IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = "VARIABLEFLOWPRESSUREINDEPENDANT";
  IfcAirTerminalBoxTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAirTerminalBoxTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAirTerminalTypeEnum = /*#__PURE__*/_createClass(function IfcAirTerminalTypeEnum(v) {
    _classCallCheck(this, IfcAirTerminalTypeEnum);

    this.value = v;
  });

  _exports.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;
  IfcAirTerminalTypeEnum.DIFFUSER = "DIFFUSER";
  IfcAirTerminalTypeEnum.GRILLE = "GRILLE";
  IfcAirTerminalTypeEnum.LOUVRE = "LOUVRE";
  IfcAirTerminalTypeEnum.REGISTER = "REGISTER";
  IfcAirTerminalTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAirTerminalTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAirToAirHeatRecoveryTypeEnum = /*#__PURE__*/_createClass(function IfcAirToAirHeatRecoveryTypeEnum(v) {
    _classCallCheck(this, IfcAirToAirHeatRecoveryTypeEnum);

    this.value = v;
  });

  _exports.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;
  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = "FIXEDPLATECOUNTERFLOWEXCHANGER";
  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = "FIXEDPLATECROSSFLOWEXCHANGER";
  IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = "FIXEDPLATEPARALLELFLOWEXCHANGER";
  IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = "ROTARYWHEEL";
  IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = "RUNAROUNDCOILLOOP";
  IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = "HEATPIPE";
  IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = "TWINTOWERENTHALPYRECOVERYLOOPS";
  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS";
  IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = "THERMOSIPHONCOILTYPEHEATEXCHANGERS";
  IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAlarmTypeEnum = /*#__PURE__*/_createClass(function IfcAlarmTypeEnum(v) {
    _classCallCheck(this, IfcAlarmTypeEnum);

    this.value = v;
  });

  _exports.IfcAlarmTypeEnum = IfcAlarmTypeEnum;
  IfcAlarmTypeEnum.BELL = "BELL";
  IfcAlarmTypeEnum.BREAKGLASSBUTTON = "BREAKGLASSBUTTON";
  IfcAlarmTypeEnum.LIGHT = "LIGHT";
  IfcAlarmTypeEnum.MANUALPULLBOX = "MANUALPULLBOX";
  IfcAlarmTypeEnum.SIREN = "SIREN";
  IfcAlarmTypeEnum.WHISTLE = "WHISTLE";
  IfcAlarmTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAlarmTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAlignmentTypeEnum = /*#__PURE__*/_createClass(function IfcAlignmentTypeEnum(v) {
    _classCallCheck(this, IfcAlignmentTypeEnum);

    this.value = v;
  });

  _exports.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum;
  IfcAlignmentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAlignmentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAnalysisModelTypeEnum = /*#__PURE__*/_createClass(function IfcAnalysisModelTypeEnum(v) {
    _classCallCheck(this, IfcAnalysisModelTypeEnum);

    this.value = v;
  });

  _exports.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;
  IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = "IN_PLANE_LOADING_2D";
  IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = "OUT_PLANE_LOADING_2D";
  IfcAnalysisModelTypeEnum.LOADING_3D = "LOADING_3D";
  IfcAnalysisModelTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAnalysisModelTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAnalysisTheoryTypeEnum = /*#__PURE__*/_createClass(function IfcAnalysisTheoryTypeEnum(v) {
    _classCallCheck(this, IfcAnalysisTheoryTypeEnum);

    this.value = v;
  });

  _exports.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;
  IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = "FIRST_ORDER_THEORY";
  IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = "SECOND_ORDER_THEORY";
  IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = "THIRD_ORDER_THEORY";
  IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = "FULL_NONLINEAR_THEORY";
  IfcAnalysisTheoryTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAnalysisTheoryTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcArithmeticOperatorEnum = /*#__PURE__*/_createClass(function IfcArithmeticOperatorEnum(v) {
    _classCallCheck(this, IfcArithmeticOperatorEnum);

    this.value = v;
  });

  _exports.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;
  IfcArithmeticOperatorEnum.ADD = "ADD";
  IfcArithmeticOperatorEnum.DIVIDE = "DIVIDE";
  IfcArithmeticOperatorEnum.MULTIPLY = "MULTIPLY";
  IfcArithmeticOperatorEnum.SUBTRACT = "SUBTRACT";

  var IfcAssemblyPlaceEnum = /*#__PURE__*/_createClass(function IfcAssemblyPlaceEnum(v) {
    _classCallCheck(this, IfcAssemblyPlaceEnum);

    this.value = v;
  });

  _exports.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;
  IfcAssemblyPlaceEnum.SITE = "SITE";
  IfcAssemblyPlaceEnum.FACTORY = "FACTORY";
  IfcAssemblyPlaceEnum.NOTDEFINED = "NOTDEFINED";

  var IfcAudioVisualApplianceTypeEnum = /*#__PURE__*/_createClass(function IfcAudioVisualApplianceTypeEnum(v) {
    _classCallCheck(this, IfcAudioVisualApplianceTypeEnum);

    this.value = v;
  });

  _exports.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;
  IfcAudioVisualApplianceTypeEnum.AMPLIFIER = "AMPLIFIER";
  IfcAudioVisualApplianceTypeEnum.CAMERA = "CAMERA";
  IfcAudioVisualApplianceTypeEnum.DISPLAY = "DISPLAY";
  IfcAudioVisualApplianceTypeEnum.MICROPHONE = "MICROPHONE";
  IfcAudioVisualApplianceTypeEnum.PLAYER = "PLAYER";
  IfcAudioVisualApplianceTypeEnum.PROJECTOR = "PROJECTOR";
  IfcAudioVisualApplianceTypeEnum.RECEIVER = "RECEIVER";
  IfcAudioVisualApplianceTypeEnum.SPEAKER = "SPEAKER";
  IfcAudioVisualApplianceTypeEnum.SWITCHER = "SWITCHER";
  IfcAudioVisualApplianceTypeEnum.TELEPHONE = "TELEPHONE";
  IfcAudioVisualApplianceTypeEnum.TUNER = "TUNER";
  IfcAudioVisualApplianceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcAudioVisualApplianceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBSplineCurveForm = /*#__PURE__*/_createClass(function IfcBSplineCurveForm(v) {
    _classCallCheck(this, IfcBSplineCurveForm);

    this.value = v;
  });

  _exports.IfcBSplineCurveForm = IfcBSplineCurveForm;
  IfcBSplineCurveForm.POLYLINE_FORM = "POLYLINE_FORM";
  IfcBSplineCurveForm.CIRCULAR_ARC = "CIRCULAR_ARC";
  IfcBSplineCurveForm.ELLIPTIC_ARC = "ELLIPTIC_ARC";
  IfcBSplineCurveForm.PARABOLIC_ARC = "PARABOLIC_ARC";
  IfcBSplineCurveForm.HYPERBOLIC_ARC = "HYPERBOLIC_ARC";
  IfcBSplineCurveForm.UNSPECIFIED = "UNSPECIFIED";

  var IfcBSplineSurfaceForm = /*#__PURE__*/_createClass(function IfcBSplineSurfaceForm(v) {
    _classCallCheck(this, IfcBSplineSurfaceForm);

    this.value = v;
  });

  _exports.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;
  IfcBSplineSurfaceForm.PLANE_SURF = "PLANE_SURF";
  IfcBSplineSurfaceForm.CYLINDRICAL_SURF = "CYLINDRICAL_SURF";
  IfcBSplineSurfaceForm.CONICAL_SURF = "CONICAL_SURF";
  IfcBSplineSurfaceForm.SPHERICAL_SURF = "SPHERICAL_SURF";
  IfcBSplineSurfaceForm.TOROIDAL_SURF = "TOROIDAL_SURF";
  IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = "SURF_OF_REVOLUTION";
  IfcBSplineSurfaceForm.RULED_SURF = "RULED_SURF";
  IfcBSplineSurfaceForm.GENERALISED_CONE = "GENERALISED_CONE";
  IfcBSplineSurfaceForm.QUADRIC_SURF = "QUADRIC_SURF";
  IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = "SURF_OF_LINEAR_EXTRUSION";
  IfcBSplineSurfaceForm.UNSPECIFIED = "UNSPECIFIED";

  var IfcBeamTypeEnum = /*#__PURE__*/_createClass(function IfcBeamTypeEnum(v) {
    _classCallCheck(this, IfcBeamTypeEnum);

    this.value = v;
  });

  _exports.IfcBeamTypeEnum = IfcBeamTypeEnum;
  IfcBeamTypeEnum.BEAM = "BEAM";
  IfcBeamTypeEnum.JOIST = "JOIST";
  IfcBeamTypeEnum.HOLLOWCORE = "HOLLOWCORE";
  IfcBeamTypeEnum.LINTEL = "LINTEL";
  IfcBeamTypeEnum.SPANDREL = "SPANDREL";
  IfcBeamTypeEnum.T_BEAM = "T_BEAM";
  IfcBeamTypeEnum.GIRDER_SEGMENT = "GIRDER_SEGMENT";
  IfcBeamTypeEnum.DIAPHRAGM = "DIAPHRAGM";
  IfcBeamTypeEnum.PIERCAP = "PIERCAP";
  IfcBeamTypeEnum.HATSTONE = "HATSTONE";
  IfcBeamTypeEnum.CORNICE = "CORNICE";
  IfcBeamTypeEnum.EDGEBEAM = "EDGEBEAM";
  IfcBeamTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBeamTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBearingTypeDisplacementEnum = /*#__PURE__*/_createClass(function IfcBearingTypeDisplacementEnum(v) {
    _classCallCheck(this, IfcBearingTypeDisplacementEnum);

    this.value = v;
  });

  _exports.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum;
  IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = "FIXED_MOVEMENT";
  IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = "GUIDED_LONGITUDINAL";
  IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = "GUIDED_TRANSVERSAL";
  IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = "FREE_MOVEMENT";
  IfcBearingTypeDisplacementEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBearingTypeEnum = /*#__PURE__*/_createClass(function IfcBearingTypeEnum(v) {
    _classCallCheck(this, IfcBearingTypeEnum);

    this.value = v;
  });

  _exports.IfcBearingTypeEnum = IfcBearingTypeEnum;
  IfcBearingTypeEnum.CYLINDRICAL = "CYLINDRICAL";
  IfcBearingTypeEnum.SPHERICAL = "SPHERICAL";
  IfcBearingTypeEnum.ELASTOMERIC = "ELASTOMERIC";
  IfcBearingTypeEnum.POT = "POT";
  IfcBearingTypeEnum.GUIDE = "GUIDE";
  IfcBearingTypeEnum.ROCKER = "ROCKER";
  IfcBearingTypeEnum.ROLLER = "ROLLER";
  IfcBearingTypeEnum.DISK = "DISK";
  IfcBearingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBearingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBenchmarkEnum = /*#__PURE__*/_createClass(function IfcBenchmarkEnum(v) {
    _classCallCheck(this, IfcBenchmarkEnum);

    this.value = v;
  });

  _exports.IfcBenchmarkEnum = IfcBenchmarkEnum;
  IfcBenchmarkEnum.GREATERTHAN = "GREATERTHAN";
  IfcBenchmarkEnum.GREATERTHANOREQUALTO = "GREATERTHANOREQUALTO";
  IfcBenchmarkEnum.LESSTHAN = "LESSTHAN";
  IfcBenchmarkEnum.LESSTHANOREQUALTO = "LESSTHANOREQUALTO";
  IfcBenchmarkEnum.EQUALTO = "EQUALTO";
  IfcBenchmarkEnum.NOTEQUALTO = "NOTEQUALTO";
  IfcBenchmarkEnum.INCLUDES = "INCLUDES";
  IfcBenchmarkEnum.NOTINCLUDES = "NOTINCLUDES";
  IfcBenchmarkEnum.INCLUDEDIN = "INCLUDEDIN";
  IfcBenchmarkEnum.NOTINCLUDEDIN = "NOTINCLUDEDIN";

  var IfcBoilerTypeEnum = /*#__PURE__*/_createClass(function IfcBoilerTypeEnum(v) {
    _classCallCheck(this, IfcBoilerTypeEnum);

    this.value = v;
  });

  _exports.IfcBoilerTypeEnum = IfcBoilerTypeEnum;
  IfcBoilerTypeEnum.WATER = "WATER";
  IfcBoilerTypeEnum.STEAM = "STEAM";
  IfcBoilerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBoilerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBooleanOperator = /*#__PURE__*/_createClass(function IfcBooleanOperator(v) {
    _classCallCheck(this, IfcBooleanOperator);

    this.value = v;
  });

  _exports.IfcBooleanOperator = IfcBooleanOperator;
  IfcBooleanOperator.UNION = "UNION";
  IfcBooleanOperator.INTERSECTION = "INTERSECTION";
  IfcBooleanOperator.DIFFERENCE = "DIFFERENCE";

  var IfcBridgePartTypeEnum = /*#__PURE__*/_createClass(function IfcBridgePartTypeEnum(v) {
    _classCallCheck(this, IfcBridgePartTypeEnum);

    this.value = v;
  });

  _exports.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum;
  IfcBridgePartTypeEnum.ABUTMENT = "ABUTMENT";
  IfcBridgePartTypeEnum.DECK = "DECK";
  IfcBridgePartTypeEnum.DECK_SEGMENT = "DECK_SEGMENT";
  IfcBridgePartTypeEnum.FOUNDATION = "FOUNDATION";
  IfcBridgePartTypeEnum.PIER = "PIER";
  IfcBridgePartTypeEnum.PIER_SEGMENT = "PIER_SEGMENT";
  IfcBridgePartTypeEnum.PYLON = "PYLON";
  IfcBridgePartTypeEnum.SUBSTRUCTURE = "SUBSTRUCTURE";
  IfcBridgePartTypeEnum.SUPERSTRUCTURE = "SUPERSTRUCTURE";
  IfcBridgePartTypeEnum.SURFACESTRUCTURE = "SURFACESTRUCTURE";
  IfcBridgePartTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBridgePartTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBridgeTypeEnum = /*#__PURE__*/_createClass(function IfcBridgeTypeEnum(v) {
    _classCallCheck(this, IfcBridgeTypeEnum);

    this.value = v;
  });

  _exports.IfcBridgeTypeEnum = IfcBridgeTypeEnum;
  IfcBridgeTypeEnum.ARCHED = "ARCHED";
  IfcBridgeTypeEnum.CABLE_STAYED = "CABLE_STAYED";
  IfcBridgeTypeEnum.CANTILEVER = "CANTILEVER";
  IfcBridgeTypeEnum.CULVERT = "CULVERT";
  IfcBridgeTypeEnum.FRAMEWORK = "FRAMEWORK";
  IfcBridgeTypeEnum.GIRDER = "GIRDER";
  IfcBridgeTypeEnum.SUSPENSION = "SUSPENSION";
  IfcBridgeTypeEnum.TRUSS = "TRUSS";
  IfcBridgeTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBridgeTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBuildingElementPartTypeEnum = /*#__PURE__*/_createClass(function IfcBuildingElementPartTypeEnum(v) {
    _classCallCheck(this, IfcBuildingElementPartTypeEnum);

    this.value = v;
  });

  _exports.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;
  IfcBuildingElementPartTypeEnum.INSULATION = "INSULATION";
  IfcBuildingElementPartTypeEnum.PRECASTPANEL = "PRECASTPANEL";
  IfcBuildingElementPartTypeEnum.APRON = "APRON";
  IfcBuildingElementPartTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBuildingElementPartTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBuildingElementProxyTypeEnum = /*#__PURE__*/_createClass(function IfcBuildingElementProxyTypeEnum(v) {
    _classCallCheck(this, IfcBuildingElementProxyTypeEnum);

    this.value = v;
  });

  _exports.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;
  IfcBuildingElementProxyTypeEnum.COMPLEX = "COMPLEX";
  IfcBuildingElementProxyTypeEnum.ELEMENT = "ELEMENT";
  IfcBuildingElementProxyTypeEnum.PARTIAL = "PARTIAL";
  IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = "PROVISIONFORVOID";
  IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = "PROVISIONFORSPACE";
  IfcBuildingElementProxyTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBuildingElementProxyTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBuildingSystemTypeEnum = /*#__PURE__*/_createClass(function IfcBuildingSystemTypeEnum(v) {
    _classCallCheck(this, IfcBuildingSystemTypeEnum);

    this.value = v;
  });

  _exports.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;
  IfcBuildingSystemTypeEnum.FENESTRATION = "FENESTRATION";
  IfcBuildingSystemTypeEnum.FOUNDATION = "FOUNDATION";
  IfcBuildingSystemTypeEnum.LOADBEARING = "LOADBEARING";
  IfcBuildingSystemTypeEnum.OUTERSHELL = "OUTERSHELL";
  IfcBuildingSystemTypeEnum.SHADING = "SHADING";
  IfcBuildingSystemTypeEnum.TRANSPORT = "TRANSPORT";
  IfcBuildingSystemTypeEnum.REINFORCING = "REINFORCING";
  IfcBuildingSystemTypeEnum.PRESTRESSING = "PRESTRESSING";
  IfcBuildingSystemTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBuildingSystemTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcBurnerTypeEnum = /*#__PURE__*/_createClass(function IfcBurnerTypeEnum(v) {
    _classCallCheck(this, IfcBurnerTypeEnum);

    this.value = v;
  });

  _exports.IfcBurnerTypeEnum = IfcBurnerTypeEnum;
  IfcBurnerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcBurnerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCableCarrierFittingTypeEnum = /*#__PURE__*/_createClass(function IfcCableCarrierFittingTypeEnum(v) {
    _classCallCheck(this, IfcCableCarrierFittingTypeEnum);

    this.value = v;
  });

  _exports.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;
  IfcCableCarrierFittingTypeEnum.BEND = "BEND";
  IfcCableCarrierFittingTypeEnum.CROSS = "CROSS";
  IfcCableCarrierFittingTypeEnum.REDUCER = "REDUCER";
  IfcCableCarrierFittingTypeEnum.TEE = "TEE";
  IfcCableCarrierFittingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCableCarrierFittingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCableCarrierSegmentTypeEnum = /*#__PURE__*/_createClass(function IfcCableCarrierSegmentTypeEnum(v) {
    _classCallCheck(this, IfcCableCarrierSegmentTypeEnum);

    this.value = v;
  });

  _exports.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;
  IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = "CABLELADDERSEGMENT";
  IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = "CABLETRAYSEGMENT";
  IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = "CABLETRUNKINGSEGMENT";
  IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = "CONDUITSEGMENT";
  IfcCableCarrierSegmentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCableCarrierSegmentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCableFittingTypeEnum = /*#__PURE__*/_createClass(function IfcCableFittingTypeEnum(v) {
    _classCallCheck(this, IfcCableFittingTypeEnum);

    this.value = v;
  });

  _exports.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;
  IfcCableFittingTypeEnum.CONNECTOR = "CONNECTOR";
  IfcCableFittingTypeEnum.ENTRY = "ENTRY";
  IfcCableFittingTypeEnum.EXIT = "EXIT";
  IfcCableFittingTypeEnum.JUNCTION = "JUNCTION";
  IfcCableFittingTypeEnum.TRANSITION = "TRANSITION";
  IfcCableFittingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCableFittingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCableSegmentTypeEnum = /*#__PURE__*/_createClass(function IfcCableSegmentTypeEnum(v) {
    _classCallCheck(this, IfcCableSegmentTypeEnum);

    this.value = v;
  });

  _exports.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;
  IfcCableSegmentTypeEnum.BUSBARSEGMENT = "BUSBARSEGMENT";
  IfcCableSegmentTypeEnum.CABLESEGMENT = "CABLESEGMENT";
  IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = "CONDUCTORSEGMENT";
  IfcCableSegmentTypeEnum.CORESEGMENT = "CORESEGMENT";
  IfcCableSegmentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCableSegmentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCaissonFoundationTypeEnum = /*#__PURE__*/_createClass(function IfcCaissonFoundationTypeEnum(v) {
    _classCallCheck(this, IfcCaissonFoundationTypeEnum);

    this.value = v;
  });

  _exports.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum;
  IfcCaissonFoundationTypeEnum.WELL = "WELL";
  IfcCaissonFoundationTypeEnum.CAISSON = "CAISSON";
  IfcCaissonFoundationTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCaissonFoundationTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcChangeActionEnum = /*#__PURE__*/_createClass(function IfcChangeActionEnum(v) {
    _classCallCheck(this, IfcChangeActionEnum);

    this.value = v;
  });

  _exports.IfcChangeActionEnum = IfcChangeActionEnum;
  IfcChangeActionEnum.NOCHANGE = "NOCHANGE";
  IfcChangeActionEnum.MODIFIED = "MODIFIED";
  IfcChangeActionEnum.ADDED = "ADDED";
  IfcChangeActionEnum.DELETED = "DELETED";
  IfcChangeActionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcChillerTypeEnum = /*#__PURE__*/_createClass(function IfcChillerTypeEnum(v) {
    _classCallCheck(this, IfcChillerTypeEnum);

    this.value = v;
  });

  _exports.IfcChillerTypeEnum = IfcChillerTypeEnum;
  IfcChillerTypeEnum.AIRCOOLED = "AIRCOOLED";
  IfcChillerTypeEnum.WATERCOOLED = "WATERCOOLED";
  IfcChillerTypeEnum.HEATRECOVERY = "HEATRECOVERY";
  IfcChillerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcChillerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcChimneyTypeEnum = /*#__PURE__*/_createClass(function IfcChimneyTypeEnum(v) {
    _classCallCheck(this, IfcChimneyTypeEnum);

    this.value = v;
  });

  _exports.IfcChimneyTypeEnum = IfcChimneyTypeEnum;
  IfcChimneyTypeEnum.USERDEFINED = "USERDEFINED";
  IfcChimneyTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCoilTypeEnum = /*#__PURE__*/_createClass(function IfcCoilTypeEnum(v) {
    _classCallCheck(this, IfcCoilTypeEnum);

    this.value = v;
  });

  _exports.IfcCoilTypeEnum = IfcCoilTypeEnum;
  IfcCoilTypeEnum.DXCOOLINGCOIL = "DXCOOLINGCOIL";
  IfcCoilTypeEnum.ELECTRICHEATINGCOIL = "ELECTRICHEATINGCOIL";
  IfcCoilTypeEnum.GASHEATINGCOIL = "GASHEATINGCOIL";
  IfcCoilTypeEnum.HYDRONICCOIL = "HYDRONICCOIL";
  IfcCoilTypeEnum.STEAMHEATINGCOIL = "STEAMHEATINGCOIL";
  IfcCoilTypeEnum.WATERCOOLINGCOIL = "WATERCOOLINGCOIL";
  IfcCoilTypeEnum.WATERHEATINGCOIL = "WATERHEATINGCOIL";
  IfcCoilTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCoilTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcColumnTypeEnum = /*#__PURE__*/_createClass(function IfcColumnTypeEnum(v) {
    _classCallCheck(this, IfcColumnTypeEnum);

    this.value = v;
  });

  _exports.IfcColumnTypeEnum = IfcColumnTypeEnum;
  IfcColumnTypeEnum.COLUMN = "COLUMN";
  IfcColumnTypeEnum.PILASTER = "PILASTER";
  IfcColumnTypeEnum.PIERSTEM = "PIERSTEM";
  IfcColumnTypeEnum.PIERSTEM_SEGMENT = "PIERSTEM_SEGMENT";
  IfcColumnTypeEnum.STANDCOLUMN = "STANDCOLUMN";
  IfcColumnTypeEnum.USERDEFINED = "USERDEFINED";
  IfcColumnTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCommunicationsApplianceTypeEnum = /*#__PURE__*/_createClass(function IfcCommunicationsApplianceTypeEnum(v) {
    _classCallCheck(this, IfcCommunicationsApplianceTypeEnum);

    this.value = v;
  });

  _exports.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;
  IfcCommunicationsApplianceTypeEnum.ANTENNA = "ANTENNA";
  IfcCommunicationsApplianceTypeEnum.COMPUTER = "COMPUTER";
  IfcCommunicationsApplianceTypeEnum.FAX = "FAX";
  IfcCommunicationsApplianceTypeEnum.GATEWAY = "GATEWAY";
  IfcCommunicationsApplianceTypeEnum.MODEM = "MODEM";
  IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = "NETWORKAPPLIANCE";
  IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = "NETWORKBRIDGE";
  IfcCommunicationsApplianceTypeEnum.NETWORKHUB = "NETWORKHUB";
  IfcCommunicationsApplianceTypeEnum.PRINTER = "PRINTER";
  IfcCommunicationsApplianceTypeEnum.REPEATER = "REPEATER";
  IfcCommunicationsApplianceTypeEnum.ROUTER = "ROUTER";
  IfcCommunicationsApplianceTypeEnum.SCANNER = "SCANNER";
  IfcCommunicationsApplianceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCommunicationsApplianceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcComplexPropertyTemplateTypeEnum = /*#__PURE__*/_createClass(function IfcComplexPropertyTemplateTypeEnum(v) {
    _classCallCheck(this, IfcComplexPropertyTemplateTypeEnum);

    this.value = v;
  });

  _exports.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;
  IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = "P_COMPLEX";
  IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = "Q_COMPLEX";

  var IfcCompressorTypeEnum = /*#__PURE__*/_createClass(function IfcCompressorTypeEnum(v) {
    _classCallCheck(this, IfcCompressorTypeEnum);

    this.value = v;
  });

  _exports.IfcCompressorTypeEnum = IfcCompressorTypeEnum;
  IfcCompressorTypeEnum.DYNAMIC = "DYNAMIC";
  IfcCompressorTypeEnum.RECIPROCATING = "RECIPROCATING";
  IfcCompressorTypeEnum.ROTARY = "ROTARY";
  IfcCompressorTypeEnum.SCROLL = "SCROLL";
  IfcCompressorTypeEnum.TROCHOIDAL = "TROCHOIDAL";
  IfcCompressorTypeEnum.SINGLESTAGE = "SINGLESTAGE";
  IfcCompressorTypeEnum.BOOSTER = "BOOSTER";
  IfcCompressorTypeEnum.OPENTYPE = "OPENTYPE";
  IfcCompressorTypeEnum.HERMETIC = "HERMETIC";
  IfcCompressorTypeEnum.SEMIHERMETIC = "SEMIHERMETIC";
  IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = "WELDEDSHELLHERMETIC";
  IfcCompressorTypeEnum.ROLLINGPISTON = "ROLLINGPISTON";
  IfcCompressorTypeEnum.ROTARYVANE = "ROTARYVANE";
  IfcCompressorTypeEnum.SINGLESCREW = "SINGLESCREW";
  IfcCompressorTypeEnum.TWINSCREW = "TWINSCREW";
  IfcCompressorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCompressorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCondenserTypeEnum = /*#__PURE__*/_createClass(function IfcCondenserTypeEnum(v) {
    _classCallCheck(this, IfcCondenserTypeEnum);

    this.value = v;
  });

  _exports.IfcCondenserTypeEnum = IfcCondenserTypeEnum;
  IfcCondenserTypeEnum.AIRCOOLED = "AIRCOOLED";
  IfcCondenserTypeEnum.EVAPORATIVECOOLED = "EVAPORATIVECOOLED";
  IfcCondenserTypeEnum.WATERCOOLED = "WATERCOOLED";
  IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = "WATERCOOLEDBRAZEDPLATE";
  IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = "WATERCOOLEDSHELLCOIL";
  IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = "WATERCOOLEDSHELLTUBE";
  IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = "WATERCOOLEDTUBEINTUBE";
  IfcCondenserTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCondenserTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcConnectionTypeEnum = /*#__PURE__*/_createClass(function IfcConnectionTypeEnum(v) {
    _classCallCheck(this, IfcConnectionTypeEnum);

    this.value = v;
  });

  _exports.IfcConnectionTypeEnum = IfcConnectionTypeEnum;
  IfcConnectionTypeEnum.ATPATH = "ATPATH";
  IfcConnectionTypeEnum.ATSTART = "ATSTART";
  IfcConnectionTypeEnum.ATEND = "ATEND";
  IfcConnectionTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcConstraintEnum = /*#__PURE__*/_createClass(function IfcConstraintEnum(v) {
    _classCallCheck(this, IfcConstraintEnum);

    this.value = v;
  });

  _exports.IfcConstraintEnum = IfcConstraintEnum;
  IfcConstraintEnum.HARD = "HARD";
  IfcConstraintEnum.SOFT = "SOFT";
  IfcConstraintEnum.ADVISORY = "ADVISORY";
  IfcConstraintEnum.USERDEFINED = "USERDEFINED";
  IfcConstraintEnum.NOTDEFINED = "NOTDEFINED";

  var IfcConstructionEquipmentResourceTypeEnum = /*#__PURE__*/_createClass(function IfcConstructionEquipmentResourceTypeEnum(v) {
    _classCallCheck(this, IfcConstructionEquipmentResourceTypeEnum);

    this.value = v;
  });

  _exports.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;
  IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = "DEMOLISHING";
  IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = "EARTHMOVING";
  IfcConstructionEquipmentResourceTypeEnum.ERECTING = "ERECTING";
  IfcConstructionEquipmentResourceTypeEnum.HEATING = "HEATING";
  IfcConstructionEquipmentResourceTypeEnum.LIGHTING = "LIGHTING";
  IfcConstructionEquipmentResourceTypeEnum.PAVING = "PAVING";
  IfcConstructionEquipmentResourceTypeEnum.PUMPING = "PUMPING";
  IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = "TRANSPORTING";
  IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcConstructionMaterialResourceTypeEnum = /*#__PURE__*/_createClass(function IfcConstructionMaterialResourceTypeEnum(v) {
    _classCallCheck(this, IfcConstructionMaterialResourceTypeEnum);

    this.value = v;
  });

  _exports.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;
  IfcConstructionMaterialResourceTypeEnum.AGGREGATES = "AGGREGATES";
  IfcConstructionMaterialResourceTypeEnum.CONCRETE = "CONCRETE";
  IfcConstructionMaterialResourceTypeEnum.DRYWALL = "DRYWALL";
  IfcConstructionMaterialResourceTypeEnum.FUEL = "FUEL";
  IfcConstructionMaterialResourceTypeEnum.GYPSUM = "GYPSUM";
  IfcConstructionMaterialResourceTypeEnum.MASONRY = "MASONRY";
  IfcConstructionMaterialResourceTypeEnum.METAL = "METAL";
  IfcConstructionMaterialResourceTypeEnum.PLASTIC = "PLASTIC";
  IfcConstructionMaterialResourceTypeEnum.WOOD = "WOOD";
  IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = "NOTDEFINED";
  IfcConstructionMaterialResourceTypeEnum.USERDEFINED = "USERDEFINED";

  var IfcConstructionProductResourceTypeEnum = /*#__PURE__*/_createClass(function IfcConstructionProductResourceTypeEnum(v) {
    _classCallCheck(this, IfcConstructionProductResourceTypeEnum);

    this.value = v;
  });

  _exports.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;
  IfcConstructionProductResourceTypeEnum.ASSEMBLY = "ASSEMBLY";
  IfcConstructionProductResourceTypeEnum.FORMWORK = "FORMWORK";
  IfcConstructionProductResourceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcConstructionProductResourceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcControllerTypeEnum = /*#__PURE__*/_createClass(function IfcControllerTypeEnum(v) {
    _classCallCheck(this, IfcControllerTypeEnum);

    this.value = v;
  });

  _exports.IfcControllerTypeEnum = IfcControllerTypeEnum;
  IfcControllerTypeEnum.FLOATING = "FLOATING";
  IfcControllerTypeEnum.PROGRAMMABLE = "PROGRAMMABLE";
  IfcControllerTypeEnum.PROPORTIONAL = "PROPORTIONAL";
  IfcControllerTypeEnum.MULTIPOSITION = "MULTIPOSITION";
  IfcControllerTypeEnum.TWOPOSITION = "TWOPOSITION";
  IfcControllerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcControllerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCooledBeamTypeEnum = /*#__PURE__*/_createClass(function IfcCooledBeamTypeEnum(v) {
    _classCallCheck(this, IfcCooledBeamTypeEnum);

    this.value = v;
  });

  _exports.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;
  IfcCooledBeamTypeEnum.ACTIVE = "ACTIVE";
  IfcCooledBeamTypeEnum.PASSIVE = "PASSIVE";
  IfcCooledBeamTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCooledBeamTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCoolingTowerTypeEnum = /*#__PURE__*/_createClass(function IfcCoolingTowerTypeEnum(v) {
    _classCallCheck(this, IfcCoolingTowerTypeEnum);

    this.value = v;
  });

  _exports.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;
  IfcCoolingTowerTypeEnum.NATURALDRAFT = "NATURALDRAFT";
  IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = "MECHANICALINDUCEDDRAFT";
  IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = "MECHANICALFORCEDDRAFT";
  IfcCoolingTowerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCoolingTowerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCostItemTypeEnum = /*#__PURE__*/_createClass(function IfcCostItemTypeEnum(v) {
    _classCallCheck(this, IfcCostItemTypeEnum);

    this.value = v;
  });

  _exports.IfcCostItemTypeEnum = IfcCostItemTypeEnum;
  IfcCostItemTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCostItemTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCostScheduleTypeEnum = /*#__PURE__*/_createClass(function IfcCostScheduleTypeEnum(v) {
    _classCallCheck(this, IfcCostScheduleTypeEnum);

    this.value = v;
  });

  _exports.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;
  IfcCostScheduleTypeEnum.BUDGET = "BUDGET";
  IfcCostScheduleTypeEnum.COSTPLAN = "COSTPLAN";
  IfcCostScheduleTypeEnum.ESTIMATE = "ESTIMATE";
  IfcCostScheduleTypeEnum.TENDER = "TENDER";
  IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = "PRICEDBILLOFQUANTITIES";
  IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = "UNPRICEDBILLOFQUANTITIES";
  IfcCostScheduleTypeEnum.SCHEDULEOFRATES = "SCHEDULEOFRATES";
  IfcCostScheduleTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCostScheduleTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCoveringTypeEnum = /*#__PURE__*/_createClass(function IfcCoveringTypeEnum(v) {
    _classCallCheck(this, IfcCoveringTypeEnum);

    this.value = v;
  });

  _exports.IfcCoveringTypeEnum = IfcCoveringTypeEnum;
  IfcCoveringTypeEnum.CEILING = "CEILING";
  IfcCoveringTypeEnum.FLOORING = "FLOORING";
  IfcCoveringTypeEnum.CLADDING = "CLADDING";
  IfcCoveringTypeEnum.ROOFING = "ROOFING";
  IfcCoveringTypeEnum.MOLDING = "MOLDING";
  IfcCoveringTypeEnum.SKIRTINGBOARD = "SKIRTINGBOARD";
  IfcCoveringTypeEnum.INSULATION = "INSULATION";
  IfcCoveringTypeEnum.MEMBRANE = "MEMBRANE";
  IfcCoveringTypeEnum.SLEEVING = "SLEEVING";
  IfcCoveringTypeEnum.WRAPPING = "WRAPPING";
  IfcCoveringTypeEnum.COPING = "COPING";
  IfcCoveringTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCoveringTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCrewResourceTypeEnum = /*#__PURE__*/_createClass(function IfcCrewResourceTypeEnum(v) {
    _classCallCheck(this, IfcCrewResourceTypeEnum);

    this.value = v;
  });

  _exports.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;
  IfcCrewResourceTypeEnum.OFFICE = "OFFICE";
  IfcCrewResourceTypeEnum.SITE = "SITE";
  IfcCrewResourceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCrewResourceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCurtainWallTypeEnum = /*#__PURE__*/_createClass(function IfcCurtainWallTypeEnum(v) {
    _classCallCheck(this, IfcCurtainWallTypeEnum);

    this.value = v;
  });

  _exports.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;
  IfcCurtainWallTypeEnum.USERDEFINED = "USERDEFINED";
  IfcCurtainWallTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcCurveInterpolationEnum = /*#__PURE__*/_createClass(function IfcCurveInterpolationEnum(v) {
    _classCallCheck(this, IfcCurveInterpolationEnum);

    this.value = v;
  });

  _exports.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;
  IfcCurveInterpolationEnum.LINEAR = "LINEAR";
  IfcCurveInterpolationEnum.LOG_LINEAR = "LOG_LINEAR";
  IfcCurveInterpolationEnum.LOG_LOG = "LOG_LOG";
  IfcCurveInterpolationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDamperTypeEnum = /*#__PURE__*/_createClass(function IfcDamperTypeEnum(v) {
    _classCallCheck(this, IfcDamperTypeEnum);

    this.value = v;
  });

  _exports.IfcDamperTypeEnum = IfcDamperTypeEnum;
  IfcDamperTypeEnum.BACKDRAFTDAMPER = "BACKDRAFTDAMPER";
  IfcDamperTypeEnum.BALANCINGDAMPER = "BALANCINGDAMPER";
  IfcDamperTypeEnum.BLASTDAMPER = "BLASTDAMPER";
  IfcDamperTypeEnum.CONTROLDAMPER = "CONTROLDAMPER";
  IfcDamperTypeEnum.FIREDAMPER = "FIREDAMPER";
  IfcDamperTypeEnum.FIRESMOKEDAMPER = "FIRESMOKEDAMPER";
  IfcDamperTypeEnum.FUMEHOODEXHAUST = "FUMEHOODEXHAUST";
  IfcDamperTypeEnum.GRAVITYDAMPER = "GRAVITYDAMPER";
  IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = "GRAVITYRELIEFDAMPER";
  IfcDamperTypeEnum.RELIEFDAMPER = "RELIEFDAMPER";
  IfcDamperTypeEnum.SMOKEDAMPER = "SMOKEDAMPER";
  IfcDamperTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDamperTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDataOriginEnum = /*#__PURE__*/_createClass(function IfcDataOriginEnum(v) {
    _classCallCheck(this, IfcDataOriginEnum);

    this.value = v;
  });

  _exports.IfcDataOriginEnum = IfcDataOriginEnum;
  IfcDataOriginEnum.MEASURED = "MEASURED";
  IfcDataOriginEnum.PREDICTED = "PREDICTED";
  IfcDataOriginEnum.SIMULATED = "SIMULATED";
  IfcDataOriginEnum.USERDEFINED = "USERDEFINED";
  IfcDataOriginEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDerivedUnitEnum = /*#__PURE__*/_createClass(function IfcDerivedUnitEnum(v) {
    _classCallCheck(this, IfcDerivedUnitEnum);

    this.value = v;
  });

  _exports.IfcDerivedUnitEnum = IfcDerivedUnitEnum;
  IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = "ANGULARVELOCITYUNIT";
  IfcDerivedUnitEnum.AREADENSITYUNIT = "AREADENSITYUNIT";
  IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = "COMPOUNDPLANEANGLEUNIT";
  IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = "DYNAMICVISCOSITYUNIT";
  IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = "HEATFLUXDENSITYUNIT";
  IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = "INTEGERCOUNTRATEUNIT";
  IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = "ISOTHERMALMOISTURECAPACITYUNIT";
  IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = "KINEMATICVISCOSITYUNIT";
  IfcDerivedUnitEnum.LINEARVELOCITYUNIT = "LINEARVELOCITYUNIT";
  IfcDerivedUnitEnum.MASSDENSITYUNIT = "MASSDENSITYUNIT";
  IfcDerivedUnitEnum.MASSFLOWRATEUNIT = "MASSFLOWRATEUNIT";
  IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = "MOISTUREDIFFUSIVITYUNIT";
  IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = "MOLECULARWEIGHTUNIT";
  IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = "SPECIFICHEATCAPACITYUNIT";
  IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = "THERMALADMITTANCEUNIT";
  IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = "THERMALCONDUCTANCEUNIT";
  IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = "THERMALRESISTANCEUNIT";
  IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = "THERMALTRANSMITTANCEUNIT";
  IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = "VAPORPERMEABILITYUNIT";
  IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = "VOLUMETRICFLOWRATEUNIT";
  IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = "ROTATIONALFREQUENCYUNIT";
  IfcDerivedUnitEnum.TORQUEUNIT = "TORQUEUNIT";
  IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = "MOMENTOFINERTIAUNIT";
  IfcDerivedUnitEnum.LINEARMOMENTUNIT = "LINEARMOMENTUNIT";
  IfcDerivedUnitEnum.LINEARFORCEUNIT = "LINEARFORCEUNIT";
  IfcDerivedUnitEnum.PLANARFORCEUNIT = "PLANARFORCEUNIT";
  IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = "MODULUSOFELASTICITYUNIT";
  IfcDerivedUnitEnum.SHEARMODULUSUNIT = "SHEARMODULUSUNIT";
  IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = "LINEARSTIFFNESSUNIT";
  IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = "ROTATIONALSTIFFNESSUNIT";
  IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = "MODULUSOFSUBGRADEREACTIONUNIT";
  IfcDerivedUnitEnum.ACCELERATIONUNIT = "ACCELERATIONUNIT";
  IfcDerivedUnitEnum.CURVATUREUNIT = "CURVATUREUNIT";
  IfcDerivedUnitEnum.HEATINGVALUEUNIT = "HEATINGVALUEUNIT";
  IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = "IONCONCENTRATIONUNIT";
  IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = "LUMINOUSINTENSITYDISTRIBUTIONUNIT";
  IfcDerivedUnitEnum.MASSPERLENGTHUNIT = "MASSPERLENGTHUNIT";
  IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = "MODULUSOFLINEARSUBGRADEREACTIONUNIT";
  IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT";
  IfcDerivedUnitEnum.PHUNIT = "PHUNIT";
  IfcDerivedUnitEnum.ROTATIONALMASSUNIT = "ROTATIONALMASSUNIT";
  IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = "SECTIONAREAINTEGRALUNIT";
  IfcDerivedUnitEnum.SECTIONMODULUSUNIT = "SECTIONMODULUSUNIT";
  IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = "SOUNDPOWERLEVELUNIT";
  IfcDerivedUnitEnum.SOUNDPOWERUNIT = "SOUNDPOWERUNIT";
  IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = "SOUNDPRESSURELEVELUNIT";
  IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = "SOUNDPRESSUREUNIT";
  IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = "TEMPERATUREGRADIENTUNIT";
  IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = "TEMPERATURERATEOFCHANGEUNIT";
  IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = "THERMALEXPANSIONCOEFFICIENTUNIT";
  IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = "WARPINGCONSTANTUNIT";
  IfcDerivedUnitEnum.WARPINGMOMENTUNIT = "WARPINGMOMENTUNIT";
  IfcDerivedUnitEnum.USERDEFINED = "USERDEFINED";

  var IfcDirectionSenseEnum = /*#__PURE__*/_createClass(function IfcDirectionSenseEnum(v) {
    _classCallCheck(this, IfcDirectionSenseEnum);

    this.value = v;
  });

  _exports.IfcDirectionSenseEnum = IfcDirectionSenseEnum;
  IfcDirectionSenseEnum.POSITIVE = "POSITIVE";
  IfcDirectionSenseEnum.NEGATIVE = "NEGATIVE";

  var IfcDiscreteAccessoryTypeEnum = /*#__PURE__*/_createClass(function IfcDiscreteAccessoryTypeEnum(v) {
    _classCallCheck(this, IfcDiscreteAccessoryTypeEnum);

    this.value = v;
  });

  _exports.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;
  IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = "ANCHORPLATE";
  IfcDiscreteAccessoryTypeEnum.BRACKET = "BRACKET";
  IfcDiscreteAccessoryTypeEnum.SHOE = "SHOE";
  IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = "EXPANSION_JOINT_DEVICE";
  IfcDiscreteAccessoryTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDiscreteAccessoryTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDistributionChamberElementTypeEnum = /*#__PURE__*/_createClass(function IfcDistributionChamberElementTypeEnum(v) {
    _classCallCheck(this, IfcDistributionChamberElementTypeEnum);

    this.value = v;
  });

  _exports.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;
  IfcDistributionChamberElementTypeEnum.FORMEDDUCT = "FORMEDDUCT";
  IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = "INSPECTIONCHAMBER";
  IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = "INSPECTIONPIT";
  IfcDistributionChamberElementTypeEnum.MANHOLE = "MANHOLE";
  IfcDistributionChamberElementTypeEnum.METERCHAMBER = "METERCHAMBER";
  IfcDistributionChamberElementTypeEnum.SUMP = "SUMP";
  IfcDistributionChamberElementTypeEnum.TRENCH = "TRENCH";
  IfcDistributionChamberElementTypeEnum.VALVECHAMBER = "VALVECHAMBER";
  IfcDistributionChamberElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDistributionChamberElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDistributionPortTypeEnum = /*#__PURE__*/_createClass(function IfcDistributionPortTypeEnum(v) {
    _classCallCheck(this, IfcDistributionPortTypeEnum);

    this.value = v;
  });

  _exports.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;
  IfcDistributionPortTypeEnum.CABLE = "CABLE";
  IfcDistributionPortTypeEnum.CABLECARRIER = "CABLECARRIER";
  IfcDistributionPortTypeEnum.DUCT = "DUCT";
  IfcDistributionPortTypeEnum.PIPE = "PIPE";
  IfcDistributionPortTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDistributionPortTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDistributionSystemEnum = /*#__PURE__*/_createClass(function IfcDistributionSystemEnum(v) {
    _classCallCheck(this, IfcDistributionSystemEnum);

    this.value = v;
  });

  _exports.IfcDistributionSystemEnum = IfcDistributionSystemEnum;
  IfcDistributionSystemEnum.AIRCONDITIONING = "AIRCONDITIONING";
  IfcDistributionSystemEnum.AUDIOVISUAL = "AUDIOVISUAL";
  IfcDistributionSystemEnum.CHEMICAL = "CHEMICAL";
  IfcDistributionSystemEnum.CHILLEDWATER = "CHILLEDWATER";
  IfcDistributionSystemEnum.COMMUNICATION = "COMMUNICATION";
  IfcDistributionSystemEnum.COMPRESSEDAIR = "COMPRESSEDAIR";
  IfcDistributionSystemEnum.CONDENSERWATER = "CONDENSERWATER";
  IfcDistributionSystemEnum.CONTROL = "CONTROL";
  IfcDistributionSystemEnum.CONVEYING = "CONVEYING";
  IfcDistributionSystemEnum.DATA = "DATA";
  IfcDistributionSystemEnum.DISPOSAL = "DISPOSAL";
  IfcDistributionSystemEnum.DOMESTICCOLDWATER = "DOMESTICCOLDWATER";
  IfcDistributionSystemEnum.DOMESTICHOTWATER = "DOMESTICHOTWATER";
  IfcDistributionSystemEnum.DRAINAGE = "DRAINAGE";
  IfcDistributionSystemEnum.EARTHING = "EARTHING";
  IfcDistributionSystemEnum.ELECTRICAL = "ELECTRICAL";
  IfcDistributionSystemEnum.ELECTROACOUSTIC = "ELECTROACOUSTIC";
  IfcDistributionSystemEnum.EXHAUST = "EXHAUST";
  IfcDistributionSystemEnum.FIREPROTECTION = "FIREPROTECTION";
  IfcDistributionSystemEnum.FUEL = "FUEL";
  IfcDistributionSystemEnum.GAS = "GAS";
  IfcDistributionSystemEnum.HAZARDOUS = "HAZARDOUS";
  IfcDistributionSystemEnum.HEATING = "HEATING";
  IfcDistributionSystemEnum.LIGHTING = "LIGHTING";
  IfcDistributionSystemEnum.LIGHTNINGPROTECTION = "LIGHTNINGPROTECTION";
  IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = "MUNICIPALSOLIDWASTE";
  IfcDistributionSystemEnum.OIL = "OIL";
  IfcDistributionSystemEnum.OPERATIONAL = "OPERATIONAL";
  IfcDistributionSystemEnum.POWERGENERATION = "POWERGENERATION";
  IfcDistributionSystemEnum.RAINWATER = "RAINWATER";
  IfcDistributionSystemEnum.REFRIGERATION = "REFRIGERATION";
  IfcDistributionSystemEnum.SECURITY = "SECURITY";
  IfcDistributionSystemEnum.SEWAGE = "SEWAGE";
  IfcDistributionSystemEnum.SIGNAL = "SIGNAL";
  IfcDistributionSystemEnum.STORMWATER = "STORMWATER";
  IfcDistributionSystemEnum.TELEPHONE = "TELEPHONE";
  IfcDistributionSystemEnum.TV = "TV";
  IfcDistributionSystemEnum.VACUUM = "VACUUM";
  IfcDistributionSystemEnum.VENT = "VENT";
  IfcDistributionSystemEnum.VENTILATION = "VENTILATION";
  IfcDistributionSystemEnum.WASTEWATER = "WASTEWATER";
  IfcDistributionSystemEnum.WATERSUPPLY = "WATERSUPPLY";
  IfcDistributionSystemEnum.USERDEFINED = "USERDEFINED";
  IfcDistributionSystemEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDocumentConfidentialityEnum = /*#__PURE__*/_createClass(function IfcDocumentConfidentialityEnum(v) {
    _classCallCheck(this, IfcDocumentConfidentialityEnum);

    this.value = v;
  });

  _exports.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;
  IfcDocumentConfidentialityEnum.PUBLIC = "PUBLIC";
  IfcDocumentConfidentialityEnum.RESTRICTED = "RESTRICTED";
  IfcDocumentConfidentialityEnum.CONFIDENTIAL = "CONFIDENTIAL";
  IfcDocumentConfidentialityEnum.PERSONAL = "PERSONAL";
  IfcDocumentConfidentialityEnum.USERDEFINED = "USERDEFINED";
  IfcDocumentConfidentialityEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDocumentStatusEnum = /*#__PURE__*/_createClass(function IfcDocumentStatusEnum(v) {
    _classCallCheck(this, IfcDocumentStatusEnum);

    this.value = v;
  });

  _exports.IfcDocumentStatusEnum = IfcDocumentStatusEnum;
  IfcDocumentStatusEnum.DRAFT = "DRAFT";
  IfcDocumentStatusEnum.FINALDRAFT = "FINALDRAFT";
  IfcDocumentStatusEnum.FINAL = "FINAL";
  IfcDocumentStatusEnum.REVISION = "REVISION";
  IfcDocumentStatusEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDoorPanelOperationEnum = /*#__PURE__*/_createClass(function IfcDoorPanelOperationEnum(v) {
    _classCallCheck(this, IfcDoorPanelOperationEnum);

    this.value = v;
  });

  _exports.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;
  IfcDoorPanelOperationEnum.SWINGING = "SWINGING";
  IfcDoorPanelOperationEnum.DOUBLE_ACTING = "DOUBLE_ACTING";
  IfcDoorPanelOperationEnum.SLIDING = "SLIDING";
  IfcDoorPanelOperationEnum.FOLDING = "FOLDING";
  IfcDoorPanelOperationEnum.REVOLVING = "REVOLVING";
  IfcDoorPanelOperationEnum.ROLLINGUP = "ROLLINGUP";
  IfcDoorPanelOperationEnum.FIXEDPANEL = "FIXEDPANEL";
  IfcDoorPanelOperationEnum.USERDEFINED = "USERDEFINED";
  IfcDoorPanelOperationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDoorPanelPositionEnum = /*#__PURE__*/_createClass(function IfcDoorPanelPositionEnum(v) {
    _classCallCheck(this, IfcDoorPanelPositionEnum);

    this.value = v;
  });

  _exports.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;
  IfcDoorPanelPositionEnum.LEFT = "LEFT";
  IfcDoorPanelPositionEnum.MIDDLE = "MIDDLE";
  IfcDoorPanelPositionEnum.RIGHT = "RIGHT";
  IfcDoorPanelPositionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDoorStyleConstructionEnum = /*#__PURE__*/_createClass(function IfcDoorStyleConstructionEnum(v) {
    _classCallCheck(this, IfcDoorStyleConstructionEnum);

    this.value = v;
  });

  _exports.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;
  IfcDoorStyleConstructionEnum.ALUMINIUM = "ALUMINIUM";
  IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = "HIGH_GRADE_STEEL";
  IfcDoorStyleConstructionEnum.STEEL = "STEEL";
  IfcDoorStyleConstructionEnum.WOOD = "WOOD";
  IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = "ALUMINIUM_WOOD";
  IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = "ALUMINIUM_PLASTIC";
  IfcDoorStyleConstructionEnum.PLASTIC = "PLASTIC";
  IfcDoorStyleConstructionEnum.USERDEFINED = "USERDEFINED";
  IfcDoorStyleConstructionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDoorStyleOperationEnum = /*#__PURE__*/_createClass(function IfcDoorStyleOperationEnum(v) {
    _classCallCheck(this, IfcDoorStyleOperationEnum);

    this.value = v;
  });

  _exports.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;
  IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = "SINGLE_SWING_LEFT";
  IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = "SINGLE_SWING_RIGHT";
  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = "DOUBLE_DOOR_SINGLE_SWING";
  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT";
  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT";
  IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = "DOUBLE_SWING_LEFT";
  IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = "DOUBLE_SWING_RIGHT";
  IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = "DOUBLE_DOOR_DOUBLE_SWING";
  IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = "SLIDING_TO_LEFT";
  IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = "SLIDING_TO_RIGHT";
  IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = "DOUBLE_DOOR_SLIDING";
  IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = "FOLDING_TO_LEFT";
  IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = "FOLDING_TO_RIGHT";
  IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = "DOUBLE_DOOR_FOLDING";
  IfcDoorStyleOperationEnum.REVOLVING = "REVOLVING";
  IfcDoorStyleOperationEnum.ROLLINGUP = "ROLLINGUP";
  IfcDoorStyleOperationEnum.USERDEFINED = "USERDEFINED";
  IfcDoorStyleOperationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDoorTypeEnum = /*#__PURE__*/_createClass(function IfcDoorTypeEnum(v) {
    _classCallCheck(this, IfcDoorTypeEnum);

    this.value = v;
  });

  _exports.IfcDoorTypeEnum = IfcDoorTypeEnum;
  IfcDoorTypeEnum.DOOR = "DOOR";
  IfcDoorTypeEnum.GATE = "GATE";
  IfcDoorTypeEnum.TRAPDOOR = "TRAPDOOR";
  IfcDoorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDoorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDoorTypeOperationEnum = /*#__PURE__*/_createClass(function IfcDoorTypeOperationEnum(v) {
    _classCallCheck(this, IfcDoorTypeOperationEnum);

    this.value = v;
  });

  _exports.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;
  IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = "SINGLE_SWING_LEFT";
  IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = "SINGLE_SWING_RIGHT";
  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = "DOUBLE_DOOR_SINGLE_SWING";
  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT";
  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT";
  IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = "DOUBLE_SWING_LEFT";
  IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = "DOUBLE_SWING_RIGHT";
  IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = "DOUBLE_DOOR_DOUBLE_SWING";
  IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = "SLIDING_TO_LEFT";
  IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = "SLIDING_TO_RIGHT";
  IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = "DOUBLE_DOOR_SLIDING";
  IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = "FOLDING_TO_LEFT";
  IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = "FOLDING_TO_RIGHT";
  IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = "DOUBLE_DOOR_FOLDING";
  IfcDoorTypeOperationEnum.REVOLVING = "REVOLVING";
  IfcDoorTypeOperationEnum.ROLLINGUP = "ROLLINGUP";
  IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = "SWING_FIXED_LEFT";
  IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = "SWING_FIXED_RIGHT";
  IfcDoorTypeOperationEnum.USERDEFINED = "USERDEFINED";
  IfcDoorTypeOperationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDuctFittingTypeEnum = /*#__PURE__*/_createClass(function IfcDuctFittingTypeEnum(v) {
    _classCallCheck(this, IfcDuctFittingTypeEnum);

    this.value = v;
  });

  _exports.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;
  IfcDuctFittingTypeEnum.BEND = "BEND";
  IfcDuctFittingTypeEnum.CONNECTOR = "CONNECTOR";
  IfcDuctFittingTypeEnum.ENTRY = "ENTRY";
  IfcDuctFittingTypeEnum.EXIT = "EXIT";
  IfcDuctFittingTypeEnum.JUNCTION = "JUNCTION";
  IfcDuctFittingTypeEnum.OBSTRUCTION = "OBSTRUCTION";
  IfcDuctFittingTypeEnum.TRANSITION = "TRANSITION";
  IfcDuctFittingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDuctFittingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDuctSegmentTypeEnum = /*#__PURE__*/_createClass(function IfcDuctSegmentTypeEnum(v) {
    _classCallCheck(this, IfcDuctSegmentTypeEnum);

    this.value = v;
  });

  _exports.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;
  IfcDuctSegmentTypeEnum.RIGIDSEGMENT = "RIGIDSEGMENT";
  IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = "FLEXIBLESEGMENT";
  IfcDuctSegmentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDuctSegmentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcDuctSilencerTypeEnum = /*#__PURE__*/_createClass(function IfcDuctSilencerTypeEnum(v) {
    _classCallCheck(this, IfcDuctSilencerTypeEnum);

    this.value = v;
  });

  _exports.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;
  IfcDuctSilencerTypeEnum.FLATOVAL = "FLATOVAL";
  IfcDuctSilencerTypeEnum.RECTANGULAR = "RECTANGULAR";
  IfcDuctSilencerTypeEnum.ROUND = "ROUND";
  IfcDuctSilencerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcDuctSilencerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElectricApplianceTypeEnum = /*#__PURE__*/_createClass(function IfcElectricApplianceTypeEnum(v) {
    _classCallCheck(this, IfcElectricApplianceTypeEnum);

    this.value = v;
  });

  _exports.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;
  IfcElectricApplianceTypeEnum.DISHWASHER = "DISHWASHER";
  IfcElectricApplianceTypeEnum.ELECTRICCOOKER = "ELECTRICCOOKER";
  IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = "FREESTANDINGELECTRICHEATER";
  IfcElectricApplianceTypeEnum.FREESTANDINGFAN = "FREESTANDINGFAN";
  IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = "FREESTANDINGWATERHEATER";
  IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = "FREESTANDINGWATERCOOLER";
  IfcElectricApplianceTypeEnum.FREEZER = "FREEZER";
  IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = "FRIDGE_FREEZER";
  IfcElectricApplianceTypeEnum.HANDDRYER = "HANDDRYER";
  IfcElectricApplianceTypeEnum.KITCHENMACHINE = "KITCHENMACHINE";
  IfcElectricApplianceTypeEnum.MICROWAVE = "MICROWAVE";
  IfcElectricApplianceTypeEnum.PHOTOCOPIER = "PHOTOCOPIER";
  IfcElectricApplianceTypeEnum.REFRIGERATOR = "REFRIGERATOR";
  IfcElectricApplianceTypeEnum.TUMBLEDRYER = "TUMBLEDRYER";
  IfcElectricApplianceTypeEnum.VENDINGMACHINE = "VENDINGMACHINE";
  IfcElectricApplianceTypeEnum.WASHINGMACHINE = "WASHINGMACHINE";
  IfcElectricApplianceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElectricApplianceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElectricDistributionBoardTypeEnum = /*#__PURE__*/_createClass(function IfcElectricDistributionBoardTypeEnum(v) {
    _classCallCheck(this, IfcElectricDistributionBoardTypeEnum);

    this.value = v;
  });

  _exports.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;
  IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = "CONSUMERUNIT";
  IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = "DISTRIBUTIONBOARD";
  IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = "MOTORCONTROLCENTRE";
  IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = "SWITCHBOARD";
  IfcElectricDistributionBoardTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElectricDistributionBoardTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElectricFlowStorageDeviceTypeEnum = /*#__PURE__*/_createClass(function IfcElectricFlowStorageDeviceTypeEnum(v) {
    _classCallCheck(this, IfcElectricFlowStorageDeviceTypeEnum);

    this.value = v;
  });

  _exports.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;
  IfcElectricFlowStorageDeviceTypeEnum.BATTERY = "BATTERY";
  IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = "CAPACITORBANK";
  IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = "HARMONICFILTER";
  IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = "INDUCTORBANK";
  IfcElectricFlowStorageDeviceTypeEnum.UPS = "UPS";
  IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElectricGeneratorTypeEnum = /*#__PURE__*/_createClass(function IfcElectricGeneratorTypeEnum(v) {
    _classCallCheck(this, IfcElectricGeneratorTypeEnum);

    this.value = v;
  });

  _exports.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;
  IfcElectricGeneratorTypeEnum.CHP = "CHP";
  IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = "ENGINEGENERATOR";
  IfcElectricGeneratorTypeEnum.STANDALONE = "STANDALONE";
  IfcElectricGeneratorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElectricGeneratorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElectricMotorTypeEnum = /*#__PURE__*/_createClass(function IfcElectricMotorTypeEnum(v) {
    _classCallCheck(this, IfcElectricMotorTypeEnum);

    this.value = v;
  });

  _exports.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;
  IfcElectricMotorTypeEnum.DC = "DC";
  IfcElectricMotorTypeEnum.INDUCTION = "INDUCTION";
  IfcElectricMotorTypeEnum.POLYPHASE = "POLYPHASE";
  IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = "RELUCTANCESYNCHRONOUS";
  IfcElectricMotorTypeEnum.SYNCHRONOUS = "SYNCHRONOUS";
  IfcElectricMotorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElectricMotorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElectricTimeControlTypeEnum = /*#__PURE__*/_createClass(function IfcElectricTimeControlTypeEnum(v) {
    _classCallCheck(this, IfcElectricTimeControlTypeEnum);

    this.value = v;
  });

  _exports.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;
  IfcElectricTimeControlTypeEnum.TIMECLOCK = "TIMECLOCK";
  IfcElectricTimeControlTypeEnum.TIMEDELAY = "TIMEDELAY";
  IfcElectricTimeControlTypeEnum.RELAY = "RELAY";
  IfcElectricTimeControlTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElectricTimeControlTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElementAssemblyTypeEnum = /*#__PURE__*/_createClass(function IfcElementAssemblyTypeEnum(v) {
    _classCallCheck(this, IfcElementAssemblyTypeEnum);

    this.value = v;
  });

  _exports.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;
  IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = "ACCESSORY_ASSEMBLY";
  IfcElementAssemblyTypeEnum.ARCH = "ARCH";
  IfcElementAssemblyTypeEnum.BEAM_GRID = "BEAM_GRID";
  IfcElementAssemblyTypeEnum.BRACED_FRAME = "BRACED_FRAME";
  IfcElementAssemblyTypeEnum.GIRDER = "GIRDER";
  IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = "REINFORCEMENT_UNIT";
  IfcElementAssemblyTypeEnum.RIGID_FRAME = "RIGID_FRAME";
  IfcElementAssemblyTypeEnum.SLAB_FIELD = "SLAB_FIELD";
  IfcElementAssemblyTypeEnum.TRUSS = "TRUSS";
  IfcElementAssemblyTypeEnum.ABUTMENT = "ABUTMENT";
  IfcElementAssemblyTypeEnum.PIER = "PIER";
  IfcElementAssemblyTypeEnum.PYLON = "PYLON";
  IfcElementAssemblyTypeEnum.CROSS_BRACING = "CROSS_BRACING";
  IfcElementAssemblyTypeEnum.DECK = "DECK";
  IfcElementAssemblyTypeEnum.USERDEFINED = "USERDEFINED";
  IfcElementAssemblyTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcElementCompositionEnum = /*#__PURE__*/_createClass(function IfcElementCompositionEnum(v) {
    _classCallCheck(this, IfcElementCompositionEnum);

    this.value = v;
  });

  _exports.IfcElementCompositionEnum = IfcElementCompositionEnum;
  IfcElementCompositionEnum.COMPLEX = "COMPLEX";
  IfcElementCompositionEnum.ELEMENT = "ELEMENT";
  IfcElementCompositionEnum.PARTIAL = "PARTIAL";

  var IfcEngineTypeEnum = /*#__PURE__*/_createClass(function IfcEngineTypeEnum(v) {
    _classCallCheck(this, IfcEngineTypeEnum);

    this.value = v;
  });

  _exports.IfcEngineTypeEnum = IfcEngineTypeEnum;
  IfcEngineTypeEnum.EXTERNALCOMBUSTION = "EXTERNALCOMBUSTION";
  IfcEngineTypeEnum.INTERNALCOMBUSTION = "INTERNALCOMBUSTION";
  IfcEngineTypeEnum.USERDEFINED = "USERDEFINED";
  IfcEngineTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcEvaporativeCoolerTypeEnum = /*#__PURE__*/_createClass(function IfcEvaporativeCoolerTypeEnum(v) {
    _classCallCheck(this, IfcEvaporativeCoolerTypeEnum);

    this.value = v;
  });

  _exports.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;
  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER";
  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER";
  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER";
  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER";
  IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = "DIRECTEVAPORATIVEAIRWASHER";
  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER";
  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = "INDIRECTEVAPORATIVEWETCOIL";
  IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER";
  IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = "INDIRECTDIRECTCOMBINATION";
  IfcEvaporativeCoolerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcEvaporativeCoolerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcEvaporatorTypeEnum = /*#__PURE__*/_createClass(function IfcEvaporatorTypeEnum(v) {
    _classCallCheck(this, IfcEvaporatorTypeEnum);

    this.value = v;
  });

  _exports.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;
  IfcEvaporatorTypeEnum.DIRECTEXPANSION = "DIRECTEXPANSION";
  IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = "DIRECTEXPANSIONSHELLANDTUBE";
  IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = "DIRECTEXPANSIONTUBEINTUBE";
  IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = "DIRECTEXPANSIONBRAZEDPLATE";
  IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = "FLOODEDSHELLANDTUBE";
  IfcEvaporatorTypeEnum.SHELLANDCOIL = "SHELLANDCOIL";
  IfcEvaporatorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcEvaporatorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcEventTriggerTypeEnum = /*#__PURE__*/_createClass(function IfcEventTriggerTypeEnum(v) {
    _classCallCheck(this, IfcEventTriggerTypeEnum);

    this.value = v;
  });

  _exports.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;
  IfcEventTriggerTypeEnum.EVENTRULE = "EVENTRULE";
  IfcEventTriggerTypeEnum.EVENTMESSAGE = "EVENTMESSAGE";
  IfcEventTriggerTypeEnum.EVENTTIME = "EVENTTIME";
  IfcEventTriggerTypeEnum.EVENTCOMPLEX = "EVENTCOMPLEX";
  IfcEventTriggerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcEventTriggerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcEventTypeEnum = /*#__PURE__*/_createClass(function IfcEventTypeEnum(v) {
    _classCallCheck(this, IfcEventTypeEnum);

    this.value = v;
  });

  _exports.IfcEventTypeEnum = IfcEventTypeEnum;
  IfcEventTypeEnum.STARTEVENT = "STARTEVENT";
  IfcEventTypeEnum.ENDEVENT = "ENDEVENT";
  IfcEventTypeEnum.INTERMEDIATEEVENT = "INTERMEDIATEEVENT";
  IfcEventTypeEnum.USERDEFINED = "USERDEFINED";
  IfcEventTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcExternalSpatialElementTypeEnum = /*#__PURE__*/_createClass(function IfcExternalSpatialElementTypeEnum(v) {
    _classCallCheck(this, IfcExternalSpatialElementTypeEnum);

    this.value = v;
  });

  _exports.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;
  IfcExternalSpatialElementTypeEnum.EXTERNAL = "EXTERNAL";
  IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = "EXTERNAL_EARTH";
  IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = "EXTERNAL_WATER";
  IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = "EXTERNAL_FIRE";
  IfcExternalSpatialElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcExternalSpatialElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFanTypeEnum = /*#__PURE__*/_createClass(function IfcFanTypeEnum(v) {
    _classCallCheck(this, IfcFanTypeEnum);

    this.value = v;
  });

  _exports.IfcFanTypeEnum = IfcFanTypeEnum;
  IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = "CENTRIFUGALFORWARDCURVED";
  IfcFanTypeEnum.CENTRIFUGALRADIAL = "CENTRIFUGALRADIAL";
  IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = "CENTRIFUGALBACKWARDINCLINEDCURVED";
  IfcFanTypeEnum.CENTRIFUGALAIRFOIL = "CENTRIFUGALAIRFOIL";
  IfcFanTypeEnum.TUBEAXIAL = "TUBEAXIAL";
  IfcFanTypeEnum.VANEAXIAL = "VANEAXIAL";
  IfcFanTypeEnum.PROPELLORAXIAL = "PROPELLORAXIAL";
  IfcFanTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFanTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFastenerTypeEnum = /*#__PURE__*/_createClass(function IfcFastenerTypeEnum(v) {
    _classCallCheck(this, IfcFastenerTypeEnum);

    this.value = v;
  });

  _exports.IfcFastenerTypeEnum = IfcFastenerTypeEnum;
  IfcFastenerTypeEnum.GLUE = "GLUE";
  IfcFastenerTypeEnum.MORTAR = "MORTAR";
  IfcFastenerTypeEnum.WELD = "WELD";
  IfcFastenerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFastenerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFilterTypeEnum = /*#__PURE__*/_createClass(function IfcFilterTypeEnum(v) {
    _classCallCheck(this, IfcFilterTypeEnum);

    this.value = v;
  });

  _exports.IfcFilterTypeEnum = IfcFilterTypeEnum;
  IfcFilterTypeEnum.AIRPARTICLEFILTER = "AIRPARTICLEFILTER";
  IfcFilterTypeEnum.COMPRESSEDAIRFILTER = "COMPRESSEDAIRFILTER";
  IfcFilterTypeEnum.ODORFILTER = "ODORFILTER";
  IfcFilterTypeEnum.OILFILTER = "OILFILTER";
  IfcFilterTypeEnum.STRAINER = "STRAINER";
  IfcFilterTypeEnum.WATERFILTER = "WATERFILTER";
  IfcFilterTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFilterTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFireSuppressionTerminalTypeEnum = /*#__PURE__*/_createClass(function IfcFireSuppressionTerminalTypeEnum(v) {
    _classCallCheck(this, IfcFireSuppressionTerminalTypeEnum);

    this.value = v;
  });

  _exports.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;
  IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = "BREECHINGINLET";
  IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = "FIREHYDRANT";
  IfcFireSuppressionTerminalTypeEnum.HOSEREEL = "HOSEREEL";
  IfcFireSuppressionTerminalTypeEnum.SPRINKLER = "SPRINKLER";
  IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = "SPRINKLERDEFLECTOR";
  IfcFireSuppressionTerminalTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFlowDirectionEnum = /*#__PURE__*/_createClass(function IfcFlowDirectionEnum(v) {
    _classCallCheck(this, IfcFlowDirectionEnum);

    this.value = v;
  });

  _exports.IfcFlowDirectionEnum = IfcFlowDirectionEnum;
  IfcFlowDirectionEnum.SOURCE = "SOURCE";
  IfcFlowDirectionEnum.SINK = "SINK";
  IfcFlowDirectionEnum.SOURCEANDSINK = "SOURCEANDSINK";
  IfcFlowDirectionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFlowInstrumentTypeEnum = /*#__PURE__*/_createClass(function IfcFlowInstrumentTypeEnum(v) {
    _classCallCheck(this, IfcFlowInstrumentTypeEnum);

    this.value = v;
  });

  _exports.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;
  IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = "PRESSUREGAUGE";
  IfcFlowInstrumentTypeEnum.THERMOMETER = "THERMOMETER";
  IfcFlowInstrumentTypeEnum.AMMETER = "AMMETER";
  IfcFlowInstrumentTypeEnum.FREQUENCYMETER = "FREQUENCYMETER";
  IfcFlowInstrumentTypeEnum.POWERFACTORMETER = "POWERFACTORMETER";
  IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = "PHASEANGLEMETER";
  IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = "VOLTMETER_PEAK";
  IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = "VOLTMETER_RMS";
  IfcFlowInstrumentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFlowInstrumentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFlowMeterTypeEnum = /*#__PURE__*/_createClass(function IfcFlowMeterTypeEnum(v) {
    _classCallCheck(this, IfcFlowMeterTypeEnum);

    this.value = v;
  });

  _exports.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;
  IfcFlowMeterTypeEnum.ENERGYMETER = "ENERGYMETER";
  IfcFlowMeterTypeEnum.GASMETER = "GASMETER";
  IfcFlowMeterTypeEnum.OILMETER = "OILMETER";
  IfcFlowMeterTypeEnum.WATERMETER = "WATERMETER";
  IfcFlowMeterTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFlowMeterTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFootingTypeEnum = /*#__PURE__*/_createClass(function IfcFootingTypeEnum(v) {
    _classCallCheck(this, IfcFootingTypeEnum);

    this.value = v;
  });

  _exports.IfcFootingTypeEnum = IfcFootingTypeEnum;
  IfcFootingTypeEnum.CAISSON_FOUNDATION = "CAISSON_FOUNDATION";
  IfcFootingTypeEnum.FOOTING_BEAM = "FOOTING_BEAM";
  IfcFootingTypeEnum.PAD_FOOTING = "PAD_FOOTING";
  IfcFootingTypeEnum.PILE_CAP = "PILE_CAP";
  IfcFootingTypeEnum.STRIP_FOOTING = "STRIP_FOOTING";
  IfcFootingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFootingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcFurnitureTypeEnum = /*#__PURE__*/_createClass(function IfcFurnitureTypeEnum(v) {
    _classCallCheck(this, IfcFurnitureTypeEnum);

    this.value = v;
  });

  _exports.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;
  IfcFurnitureTypeEnum.CHAIR = "CHAIR";
  IfcFurnitureTypeEnum.TABLE = "TABLE";
  IfcFurnitureTypeEnum.DESK = "DESK";
  IfcFurnitureTypeEnum.BED = "BED";
  IfcFurnitureTypeEnum.FILECABINET = "FILECABINET";
  IfcFurnitureTypeEnum.SHELF = "SHELF";
  IfcFurnitureTypeEnum.SOFA = "SOFA";
  IfcFurnitureTypeEnum.USERDEFINED = "USERDEFINED";
  IfcFurnitureTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcGeographicElementTypeEnum = /*#__PURE__*/_createClass(function IfcGeographicElementTypeEnum(v) {
    _classCallCheck(this, IfcGeographicElementTypeEnum);

    this.value = v;
  });

  _exports.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;
  IfcGeographicElementTypeEnum.TERRAIN = "TERRAIN";
  IfcGeographicElementTypeEnum.SOIL_BORING_POINT = "SOIL_BORING_POINT";
  IfcGeographicElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcGeographicElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcGeometricProjectionEnum = /*#__PURE__*/_createClass(function IfcGeometricProjectionEnum(v) {
    _classCallCheck(this, IfcGeometricProjectionEnum);

    this.value = v;
  });

  _exports.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;
  IfcGeometricProjectionEnum.GRAPH_VIEW = "GRAPH_VIEW";
  IfcGeometricProjectionEnum.SKETCH_VIEW = "SKETCH_VIEW";
  IfcGeometricProjectionEnum.MODEL_VIEW = "MODEL_VIEW";
  IfcGeometricProjectionEnum.PLAN_VIEW = "PLAN_VIEW";
  IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = "REFLECTED_PLAN_VIEW";
  IfcGeometricProjectionEnum.SECTION_VIEW = "SECTION_VIEW";
  IfcGeometricProjectionEnum.ELEVATION_VIEW = "ELEVATION_VIEW";
  IfcGeometricProjectionEnum.USERDEFINED = "USERDEFINED";
  IfcGeometricProjectionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcGlobalOrLocalEnum = /*#__PURE__*/_createClass(function IfcGlobalOrLocalEnum(v) {
    _classCallCheck(this, IfcGlobalOrLocalEnum);

    this.value = v;
  });

  _exports.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;
  IfcGlobalOrLocalEnum.GLOBAL_COORDS = "GLOBAL_COORDS";
  IfcGlobalOrLocalEnum.LOCAL_COORDS = "LOCAL_COORDS";

  var IfcGridTypeEnum = /*#__PURE__*/_createClass(function IfcGridTypeEnum(v) {
    _classCallCheck(this, IfcGridTypeEnum);

    this.value = v;
  });

  _exports.IfcGridTypeEnum = IfcGridTypeEnum;
  IfcGridTypeEnum.RECTANGULAR = "RECTANGULAR";
  IfcGridTypeEnum.RADIAL = "RADIAL";
  IfcGridTypeEnum.TRIANGULAR = "TRIANGULAR";
  IfcGridTypeEnum.IRREGULAR = "IRREGULAR";
  IfcGridTypeEnum.USERDEFINED = "USERDEFINED";
  IfcGridTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcHeatExchangerTypeEnum = /*#__PURE__*/_createClass(function IfcHeatExchangerTypeEnum(v) {
    _classCallCheck(this, IfcHeatExchangerTypeEnum);

    this.value = v;
  });

  _exports.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;
  IfcHeatExchangerTypeEnum.PLATE = "PLATE";
  IfcHeatExchangerTypeEnum.SHELLANDTUBE = "SHELLANDTUBE";
  IfcHeatExchangerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcHeatExchangerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcHumidifierTypeEnum = /*#__PURE__*/_createClass(function IfcHumidifierTypeEnum(v) {
    _classCallCheck(this, IfcHumidifierTypeEnum);

    this.value = v;
  });

  _exports.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;
  IfcHumidifierTypeEnum.STEAMINJECTION = "STEAMINJECTION";
  IfcHumidifierTypeEnum.ADIABATICAIRWASHER = "ADIABATICAIRWASHER";
  IfcHumidifierTypeEnum.ADIABATICPAN = "ADIABATICPAN";
  IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = "ADIABATICWETTEDELEMENT";
  IfcHumidifierTypeEnum.ADIABATICATOMIZING = "ADIABATICATOMIZING";
  IfcHumidifierTypeEnum.ADIABATICULTRASONIC = "ADIABATICULTRASONIC";
  IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = "ADIABATICRIGIDMEDIA";
  IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = "ADIABATICCOMPRESSEDAIRNOZZLE";
  IfcHumidifierTypeEnum.ASSISTEDELECTRIC = "ASSISTEDELECTRIC";
  IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = "ASSISTEDNATURALGAS";
  IfcHumidifierTypeEnum.ASSISTEDPROPANE = "ASSISTEDPROPANE";
  IfcHumidifierTypeEnum.ASSISTEDBUTANE = "ASSISTEDBUTANE";
  IfcHumidifierTypeEnum.ASSISTEDSTEAM = "ASSISTEDSTEAM";
  IfcHumidifierTypeEnum.USERDEFINED = "USERDEFINED";
  IfcHumidifierTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcInterceptorTypeEnum = /*#__PURE__*/_createClass(function IfcInterceptorTypeEnum(v) {
    _classCallCheck(this, IfcInterceptorTypeEnum);

    this.value = v;
  });

  _exports.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;
  IfcInterceptorTypeEnum.CYCLONIC = "CYCLONIC";
  IfcInterceptorTypeEnum.GREASE = "GREASE";
  IfcInterceptorTypeEnum.OIL = "OIL";
  IfcInterceptorTypeEnum.PETROL = "PETROL";
  IfcInterceptorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcInterceptorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcInternalOrExternalEnum = /*#__PURE__*/_createClass(function IfcInternalOrExternalEnum(v) {
    _classCallCheck(this, IfcInternalOrExternalEnum);

    this.value = v;
  });

  _exports.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;
  IfcInternalOrExternalEnum.INTERNAL = "INTERNAL";
  IfcInternalOrExternalEnum.EXTERNAL = "EXTERNAL";
  IfcInternalOrExternalEnum.EXTERNAL_EARTH = "EXTERNAL_EARTH";
  IfcInternalOrExternalEnum.EXTERNAL_WATER = "EXTERNAL_WATER";
  IfcInternalOrExternalEnum.EXTERNAL_FIRE = "EXTERNAL_FIRE";
  IfcInternalOrExternalEnum.NOTDEFINED = "NOTDEFINED";

  var IfcInventoryTypeEnum = /*#__PURE__*/_createClass(function IfcInventoryTypeEnum(v) {
    _classCallCheck(this, IfcInventoryTypeEnum);

    this.value = v;
  });

  _exports.IfcInventoryTypeEnum = IfcInventoryTypeEnum;
  IfcInventoryTypeEnum.ASSETINVENTORY = "ASSETINVENTORY";
  IfcInventoryTypeEnum.SPACEINVENTORY = "SPACEINVENTORY";
  IfcInventoryTypeEnum.FURNITUREINVENTORY = "FURNITUREINVENTORY";
  IfcInventoryTypeEnum.USERDEFINED = "USERDEFINED";
  IfcInventoryTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcJunctionBoxTypeEnum = /*#__PURE__*/_createClass(function IfcJunctionBoxTypeEnum(v) {
    _classCallCheck(this, IfcJunctionBoxTypeEnum);

    this.value = v;
  });

  _exports.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;
  IfcJunctionBoxTypeEnum.DATA = "DATA";
  IfcJunctionBoxTypeEnum.POWER = "POWER";
  IfcJunctionBoxTypeEnum.USERDEFINED = "USERDEFINED";
  IfcJunctionBoxTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcKnotType = /*#__PURE__*/_createClass(function IfcKnotType(v) {
    _classCallCheck(this, IfcKnotType);

    this.value = v;
  });

  _exports.IfcKnotType = IfcKnotType;
  IfcKnotType.UNIFORM_KNOTS = "UNIFORM_KNOTS";
  IfcKnotType.QUASI_UNIFORM_KNOTS = "QUASI_UNIFORM_KNOTS";
  IfcKnotType.PIECEWISE_BEZIER_KNOTS = "PIECEWISE_BEZIER_KNOTS";
  IfcKnotType.UNSPECIFIED = "UNSPECIFIED";

  var IfcLaborResourceTypeEnum = /*#__PURE__*/_createClass(function IfcLaborResourceTypeEnum(v) {
    _classCallCheck(this, IfcLaborResourceTypeEnum);

    this.value = v;
  });

  _exports.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;
  IfcLaborResourceTypeEnum.ADMINISTRATION = "ADMINISTRATION";
  IfcLaborResourceTypeEnum.CARPENTRY = "CARPENTRY";
  IfcLaborResourceTypeEnum.CLEANING = "CLEANING";
  IfcLaborResourceTypeEnum.CONCRETE = "CONCRETE";
  IfcLaborResourceTypeEnum.DRYWALL = "DRYWALL";
  IfcLaborResourceTypeEnum.ELECTRIC = "ELECTRIC";
  IfcLaborResourceTypeEnum.FINISHING = "FINISHING";
  IfcLaborResourceTypeEnum.FLOORING = "FLOORING";
  IfcLaborResourceTypeEnum.GENERAL = "GENERAL";
  IfcLaborResourceTypeEnum.HVAC = "HVAC";
  IfcLaborResourceTypeEnum.LANDSCAPING = "LANDSCAPING";
  IfcLaborResourceTypeEnum.MASONRY = "MASONRY";
  IfcLaborResourceTypeEnum.PAINTING = "PAINTING";
  IfcLaborResourceTypeEnum.PAVING = "PAVING";
  IfcLaborResourceTypeEnum.PLUMBING = "PLUMBING";
  IfcLaborResourceTypeEnum.ROOFING = "ROOFING";
  IfcLaborResourceTypeEnum.SITEGRADING = "SITEGRADING";
  IfcLaborResourceTypeEnum.STEELWORK = "STEELWORK";
  IfcLaborResourceTypeEnum.SURVEYING = "SURVEYING";
  IfcLaborResourceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcLaborResourceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcLampTypeEnum = /*#__PURE__*/_createClass(function IfcLampTypeEnum(v) {
    _classCallCheck(this, IfcLampTypeEnum);

    this.value = v;
  });

  _exports.IfcLampTypeEnum = IfcLampTypeEnum;
  IfcLampTypeEnum.COMPACTFLUORESCENT = "COMPACTFLUORESCENT";
  IfcLampTypeEnum.FLUORESCENT = "FLUORESCENT";
  IfcLampTypeEnum.HALOGEN = "HALOGEN";
  IfcLampTypeEnum.HIGHPRESSUREMERCURY = "HIGHPRESSUREMERCURY";
  IfcLampTypeEnum.HIGHPRESSURESODIUM = "HIGHPRESSURESODIUM";
  IfcLampTypeEnum.LED = "LED";
  IfcLampTypeEnum.METALHALIDE = "METALHALIDE";
  IfcLampTypeEnum.OLED = "OLED";
  IfcLampTypeEnum.TUNGSTENFILAMENT = "TUNGSTENFILAMENT";
  IfcLampTypeEnum.USERDEFINED = "USERDEFINED";
  IfcLampTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcLayerSetDirectionEnum = /*#__PURE__*/_createClass(function IfcLayerSetDirectionEnum(v) {
    _classCallCheck(this, IfcLayerSetDirectionEnum);

    this.value = v;
  });

  _exports.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;
  IfcLayerSetDirectionEnum.AXIS1 = "AXIS1";
  IfcLayerSetDirectionEnum.AXIS2 = "AXIS2";
  IfcLayerSetDirectionEnum.AXIS3 = "AXIS3";

  var IfcLightDistributionCurveEnum = /*#__PURE__*/_createClass(function IfcLightDistributionCurveEnum(v) {
    _classCallCheck(this, IfcLightDistributionCurveEnum);

    this.value = v;
  });

  _exports.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;
  IfcLightDistributionCurveEnum.TYPE_A = "TYPE_A";
  IfcLightDistributionCurveEnum.TYPE_B = "TYPE_B";
  IfcLightDistributionCurveEnum.TYPE_C = "TYPE_C";
  IfcLightDistributionCurveEnum.NOTDEFINED = "NOTDEFINED";

  var IfcLightEmissionSourceEnum = /*#__PURE__*/_createClass(function IfcLightEmissionSourceEnum(v) {
    _classCallCheck(this, IfcLightEmissionSourceEnum);

    this.value = v;
  });

  _exports.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;
  IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = "COMPACTFLUORESCENT";
  IfcLightEmissionSourceEnum.FLUORESCENT = "FLUORESCENT";
  IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = "HIGHPRESSUREMERCURY";
  IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = "HIGHPRESSURESODIUM";
  IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = "LIGHTEMITTINGDIODE";
  IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = "LOWPRESSURESODIUM";
  IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = "LOWVOLTAGEHALOGEN";
  IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = "MAINVOLTAGEHALOGEN";
  IfcLightEmissionSourceEnum.METALHALIDE = "METALHALIDE";
  IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = "TUNGSTENFILAMENT";
  IfcLightEmissionSourceEnum.NOTDEFINED = "NOTDEFINED";

  var IfcLightFixtureTypeEnum = /*#__PURE__*/_createClass(function IfcLightFixtureTypeEnum(v) {
    _classCallCheck(this, IfcLightFixtureTypeEnum);

    this.value = v;
  });

  _exports.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;
  IfcLightFixtureTypeEnum.POINTSOURCE = "POINTSOURCE";
  IfcLightFixtureTypeEnum.DIRECTIONSOURCE = "DIRECTIONSOURCE";
  IfcLightFixtureTypeEnum.SECURITYLIGHTING = "SECURITYLIGHTING";
  IfcLightFixtureTypeEnum.USERDEFINED = "USERDEFINED";
  IfcLightFixtureTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcLoadGroupTypeEnum = /*#__PURE__*/_createClass(function IfcLoadGroupTypeEnum(v) {
    _classCallCheck(this, IfcLoadGroupTypeEnum);

    this.value = v;
  });

  _exports.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;
  IfcLoadGroupTypeEnum.LOAD_GROUP = "LOAD_GROUP";
  IfcLoadGroupTypeEnum.LOAD_CASE = "LOAD_CASE";
  IfcLoadGroupTypeEnum.LOAD_COMBINATION = "LOAD_COMBINATION";
  IfcLoadGroupTypeEnum.USERDEFINED = "USERDEFINED";
  IfcLoadGroupTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcLogicalOperatorEnum = /*#__PURE__*/_createClass(function IfcLogicalOperatorEnum(v) {
    _classCallCheck(this, IfcLogicalOperatorEnum);

    this.value = v;
  });

  _exports.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;
  IfcLogicalOperatorEnum.LOGICALAND = "LOGICALAND";
  IfcLogicalOperatorEnum.LOGICALOR = "LOGICALOR";
  IfcLogicalOperatorEnum.LOGICALXOR = "LOGICALXOR";
  IfcLogicalOperatorEnum.LOGICALNOTAND = "LOGICALNOTAND";
  IfcLogicalOperatorEnum.LOGICALNOTOR = "LOGICALNOTOR";

  var IfcMechanicalFastenerTypeEnum = /*#__PURE__*/_createClass(function IfcMechanicalFastenerTypeEnum(v) {
    _classCallCheck(this, IfcMechanicalFastenerTypeEnum);

    this.value = v;
  });

  _exports.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;
  IfcMechanicalFastenerTypeEnum.ANCHORBOLT = "ANCHORBOLT";
  IfcMechanicalFastenerTypeEnum.BOLT = "BOLT";
  IfcMechanicalFastenerTypeEnum.DOWEL = "DOWEL";
  IfcMechanicalFastenerTypeEnum.NAIL = "NAIL";
  IfcMechanicalFastenerTypeEnum.NAILPLATE = "NAILPLATE";
  IfcMechanicalFastenerTypeEnum.RIVET = "RIVET";
  IfcMechanicalFastenerTypeEnum.SCREW = "SCREW";
  IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = "SHEARCONNECTOR";
  IfcMechanicalFastenerTypeEnum.STAPLE = "STAPLE";
  IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = "STUDSHEARCONNECTOR";
  IfcMechanicalFastenerTypeEnum.COUPLER = "COUPLER";
  IfcMechanicalFastenerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcMechanicalFastenerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcMedicalDeviceTypeEnum = /*#__PURE__*/_createClass(function IfcMedicalDeviceTypeEnum(v) {
    _classCallCheck(this, IfcMedicalDeviceTypeEnum);

    this.value = v;
  });

  _exports.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;
  IfcMedicalDeviceTypeEnum.AIRSTATION = "AIRSTATION";
  IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = "FEEDAIRUNIT";
  IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = "OXYGENGENERATOR";
  IfcMedicalDeviceTypeEnum.OXYGENPLANT = "OXYGENPLANT";
  IfcMedicalDeviceTypeEnum.VACUUMSTATION = "VACUUMSTATION";
  IfcMedicalDeviceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcMedicalDeviceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcMemberTypeEnum = /*#__PURE__*/_createClass(function IfcMemberTypeEnum(v) {
    _classCallCheck(this, IfcMemberTypeEnum);

    this.value = v;
  });

  _exports.IfcMemberTypeEnum = IfcMemberTypeEnum;
  IfcMemberTypeEnum.BRACE = "BRACE";
  IfcMemberTypeEnum.CHORD = "CHORD";
  IfcMemberTypeEnum.COLLAR = "COLLAR";
  IfcMemberTypeEnum.MEMBER = "MEMBER";
  IfcMemberTypeEnum.MULLION = "MULLION";
  IfcMemberTypeEnum.PLATE = "PLATE";
  IfcMemberTypeEnum.POST = "POST";
  IfcMemberTypeEnum.PURLIN = "PURLIN";
  IfcMemberTypeEnum.RAFTER = "RAFTER";
  IfcMemberTypeEnum.STRINGER = "STRINGER";
  IfcMemberTypeEnum.STRUT = "STRUT";
  IfcMemberTypeEnum.STUD = "STUD";
  IfcMemberTypeEnum.STIFFENING_RIB = "STIFFENING_RIB";
  IfcMemberTypeEnum.ARCH_SEGMENT = "ARCH_SEGMENT";
  IfcMemberTypeEnum.SUSPENSION_CABLE = "SUSPENSION_CABLE";
  IfcMemberTypeEnum.SUSPENDER = "SUSPENDER";
  IfcMemberTypeEnum.STAY_CABLE = "STAY_CABLE";
  IfcMemberTypeEnum.USERDEFINED = "USERDEFINED";
  IfcMemberTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcMotorConnectionTypeEnum = /*#__PURE__*/_createClass(function IfcMotorConnectionTypeEnum(v) {
    _classCallCheck(this, IfcMotorConnectionTypeEnum);

    this.value = v;
  });

  _exports.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;
  IfcMotorConnectionTypeEnum.BELTDRIVE = "BELTDRIVE";
  IfcMotorConnectionTypeEnum.COUPLING = "COUPLING";
  IfcMotorConnectionTypeEnum.DIRECTDRIVE = "DIRECTDRIVE";
  IfcMotorConnectionTypeEnum.USERDEFINED = "USERDEFINED";
  IfcMotorConnectionTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcNullStyle = /*#__PURE__*/_createClass(function IfcNullStyle(v) {
    _classCallCheck(this, IfcNullStyle);

    this.value = v;
  });

  _exports.IfcNullStyle = IfcNullStyle;
  IfcNullStyle.NULL = "NULL";

  var IfcObjectTypeEnum = /*#__PURE__*/_createClass(function IfcObjectTypeEnum(v) {
    _classCallCheck(this, IfcObjectTypeEnum);

    this.value = v;
  });

  _exports.IfcObjectTypeEnum = IfcObjectTypeEnum;
  IfcObjectTypeEnum.PRODUCT = "PRODUCT";
  IfcObjectTypeEnum.PROCESS = "PROCESS";
  IfcObjectTypeEnum.CONTROL = "CONTROL";
  IfcObjectTypeEnum.RESOURCE = "RESOURCE";
  IfcObjectTypeEnum.ACTOR = "ACTOR";
  IfcObjectTypeEnum.GROUP = "GROUP";
  IfcObjectTypeEnum.PROJECT = "PROJECT";
  IfcObjectTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcObjectiveEnum = /*#__PURE__*/_createClass(function IfcObjectiveEnum(v) {
    _classCallCheck(this, IfcObjectiveEnum);

    this.value = v;
  });

  _exports.IfcObjectiveEnum = IfcObjectiveEnum;
  IfcObjectiveEnum.CODECOMPLIANCE = "CODECOMPLIANCE";
  IfcObjectiveEnum.CODEWAIVER = "CODEWAIVER";
  IfcObjectiveEnum.DESIGNINTENT = "DESIGNINTENT";
  IfcObjectiveEnum.EXTERNAL = "EXTERNAL";
  IfcObjectiveEnum.HEALTHANDSAFETY = "HEALTHANDSAFETY";
  IfcObjectiveEnum.MERGECONFLICT = "MERGECONFLICT";
  IfcObjectiveEnum.MODELVIEW = "MODELVIEW";
  IfcObjectiveEnum.PARAMETER = "PARAMETER";
  IfcObjectiveEnum.REQUIREMENT = "REQUIREMENT";
  IfcObjectiveEnum.SPECIFICATION = "SPECIFICATION";
  IfcObjectiveEnum.TRIGGERCONDITION = "TRIGGERCONDITION";
  IfcObjectiveEnum.USERDEFINED = "USERDEFINED";
  IfcObjectiveEnum.NOTDEFINED = "NOTDEFINED";

  var IfcOccupantTypeEnum = /*#__PURE__*/_createClass(function IfcOccupantTypeEnum(v) {
    _classCallCheck(this, IfcOccupantTypeEnum);

    this.value = v;
  });

  _exports.IfcOccupantTypeEnum = IfcOccupantTypeEnum;
  IfcOccupantTypeEnum.ASSIGNEE = "ASSIGNEE";
  IfcOccupantTypeEnum.ASSIGNOR = "ASSIGNOR";
  IfcOccupantTypeEnum.LESSEE = "LESSEE";
  IfcOccupantTypeEnum.LESSOR = "LESSOR";
  IfcOccupantTypeEnum.LETTINGAGENT = "LETTINGAGENT";
  IfcOccupantTypeEnum.OWNER = "OWNER";
  IfcOccupantTypeEnum.TENANT = "TENANT";
  IfcOccupantTypeEnum.USERDEFINED = "USERDEFINED";
  IfcOccupantTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcOpeningElementTypeEnum = /*#__PURE__*/_createClass(function IfcOpeningElementTypeEnum(v) {
    _classCallCheck(this, IfcOpeningElementTypeEnum);

    this.value = v;
  });

  _exports.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;
  IfcOpeningElementTypeEnum.OPENING = "OPENING";
  IfcOpeningElementTypeEnum.RECESS = "RECESS";
  IfcOpeningElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcOpeningElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcOutletTypeEnum = /*#__PURE__*/_createClass(function IfcOutletTypeEnum(v) {
    _classCallCheck(this, IfcOutletTypeEnum);

    this.value = v;
  });

  _exports.IfcOutletTypeEnum = IfcOutletTypeEnum;
  IfcOutletTypeEnum.AUDIOVISUALOUTLET = "AUDIOVISUALOUTLET";
  IfcOutletTypeEnum.COMMUNICATIONSOUTLET = "COMMUNICATIONSOUTLET";
  IfcOutletTypeEnum.POWEROUTLET = "POWEROUTLET";
  IfcOutletTypeEnum.DATAOUTLET = "DATAOUTLET";
  IfcOutletTypeEnum.TELEPHONEOUTLET = "TELEPHONEOUTLET";
  IfcOutletTypeEnum.USERDEFINED = "USERDEFINED";
  IfcOutletTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPerformanceHistoryTypeEnum = /*#__PURE__*/_createClass(function IfcPerformanceHistoryTypeEnum(v) {
    _classCallCheck(this, IfcPerformanceHistoryTypeEnum);

    this.value = v;
  });

  _exports.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;
  IfcPerformanceHistoryTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPerformanceHistoryTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPermeableCoveringOperationEnum = /*#__PURE__*/_createClass(function IfcPermeableCoveringOperationEnum(v) {
    _classCallCheck(this, IfcPermeableCoveringOperationEnum);

    this.value = v;
  });

  _exports.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;
  IfcPermeableCoveringOperationEnum.GRILL = "GRILL";
  IfcPermeableCoveringOperationEnum.LOUVER = "LOUVER";
  IfcPermeableCoveringOperationEnum.SCREEN = "SCREEN";
  IfcPermeableCoveringOperationEnum.USERDEFINED = "USERDEFINED";
  IfcPermeableCoveringOperationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPermitTypeEnum = /*#__PURE__*/_createClass(function IfcPermitTypeEnum(v) {
    _classCallCheck(this, IfcPermitTypeEnum);

    this.value = v;
  });

  _exports.IfcPermitTypeEnum = IfcPermitTypeEnum;
  IfcPermitTypeEnum.ACCESS = "ACCESS";
  IfcPermitTypeEnum.BUILDING = "BUILDING";
  IfcPermitTypeEnum.WORK = "WORK";
  IfcPermitTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPermitTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPhysicalOrVirtualEnum = /*#__PURE__*/_createClass(function IfcPhysicalOrVirtualEnum(v) {
    _classCallCheck(this, IfcPhysicalOrVirtualEnum);

    this.value = v;
  });

  _exports.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;
  IfcPhysicalOrVirtualEnum.PHYSICAL = "PHYSICAL";
  IfcPhysicalOrVirtualEnum.VIRTUAL = "VIRTUAL";
  IfcPhysicalOrVirtualEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPileConstructionEnum = /*#__PURE__*/_createClass(function IfcPileConstructionEnum(v) {
    _classCallCheck(this, IfcPileConstructionEnum);

    this.value = v;
  });

  _exports.IfcPileConstructionEnum = IfcPileConstructionEnum;
  IfcPileConstructionEnum.CAST_IN_PLACE = "CAST_IN_PLACE";
  IfcPileConstructionEnum.COMPOSITE = "COMPOSITE";
  IfcPileConstructionEnum.PRECAST_CONCRETE = "PRECAST_CONCRETE";
  IfcPileConstructionEnum.PREFAB_STEEL = "PREFAB_STEEL";
  IfcPileConstructionEnum.USERDEFINED = "USERDEFINED";
  IfcPileConstructionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPileTypeEnum = /*#__PURE__*/_createClass(function IfcPileTypeEnum(v) {
    _classCallCheck(this, IfcPileTypeEnum);

    this.value = v;
  });

  _exports.IfcPileTypeEnum = IfcPileTypeEnum;
  IfcPileTypeEnum.BORED = "BORED";
  IfcPileTypeEnum.DRIVEN = "DRIVEN";
  IfcPileTypeEnum.JETGROUTING = "JETGROUTING";
  IfcPileTypeEnum.COHESION = "COHESION";
  IfcPileTypeEnum.FRICTION = "FRICTION";
  IfcPileTypeEnum.SUPPORT = "SUPPORT";
  IfcPileTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPileTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPipeFittingTypeEnum = /*#__PURE__*/_createClass(function IfcPipeFittingTypeEnum(v) {
    _classCallCheck(this, IfcPipeFittingTypeEnum);

    this.value = v;
  });

  _exports.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;
  IfcPipeFittingTypeEnum.BEND = "BEND";
  IfcPipeFittingTypeEnum.CONNECTOR = "CONNECTOR";
  IfcPipeFittingTypeEnum.ENTRY = "ENTRY";
  IfcPipeFittingTypeEnum.EXIT = "EXIT";
  IfcPipeFittingTypeEnum.JUNCTION = "JUNCTION";
  IfcPipeFittingTypeEnum.OBSTRUCTION = "OBSTRUCTION";
  IfcPipeFittingTypeEnum.TRANSITION = "TRANSITION";
  IfcPipeFittingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPipeFittingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPipeSegmentTypeEnum = /*#__PURE__*/_createClass(function IfcPipeSegmentTypeEnum(v) {
    _classCallCheck(this, IfcPipeSegmentTypeEnum);

    this.value = v;
  });

  _exports.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;
  IfcPipeSegmentTypeEnum.CULVERT = "CULVERT";
  IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = "FLEXIBLESEGMENT";
  IfcPipeSegmentTypeEnum.RIGIDSEGMENT = "RIGIDSEGMENT";
  IfcPipeSegmentTypeEnum.GUTTER = "GUTTER";
  IfcPipeSegmentTypeEnum.SPOOL = "SPOOL";
  IfcPipeSegmentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPipeSegmentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPlateTypeEnum = /*#__PURE__*/_createClass(function IfcPlateTypeEnum(v) {
    _classCallCheck(this, IfcPlateTypeEnum);

    this.value = v;
  });

  _exports.IfcPlateTypeEnum = IfcPlateTypeEnum;
  IfcPlateTypeEnum.CURTAIN_PANEL = "CURTAIN_PANEL";
  IfcPlateTypeEnum.SHEET = "SHEET";
  IfcPlateTypeEnum.FLANGE_PLATE = "FLANGE_PLATE";
  IfcPlateTypeEnum.WEB_PLATE = "WEB_PLATE";
  IfcPlateTypeEnum.STIFFENER_PLATE = "STIFFENER_PLATE";
  IfcPlateTypeEnum.GUSSET_PLATE = "GUSSET_PLATE";
  IfcPlateTypeEnum.COVER_PLATE = "COVER_PLATE";
  IfcPlateTypeEnum.SPLICE_PLATE = "SPLICE_PLATE";
  IfcPlateTypeEnum.BASE_PLATE = "BASE_PLATE";
  IfcPlateTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPlateTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPreferredSurfaceCurveRepresentation = /*#__PURE__*/_createClass(function IfcPreferredSurfaceCurveRepresentation(v) {
    _classCallCheck(this, IfcPreferredSurfaceCurveRepresentation);

    this.value = v;
  });

  _exports.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;
  IfcPreferredSurfaceCurveRepresentation.CURVE3D = "CURVE3D";
  IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = "PCURVE_S1";
  IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = "PCURVE_S2";

  var IfcProcedureTypeEnum = /*#__PURE__*/_createClass(function IfcProcedureTypeEnum(v) {
    _classCallCheck(this, IfcProcedureTypeEnum);

    this.value = v;
  });

  _exports.IfcProcedureTypeEnum = IfcProcedureTypeEnum;
  IfcProcedureTypeEnum.ADVICE_CAUTION = "ADVICE_CAUTION";
  IfcProcedureTypeEnum.ADVICE_NOTE = "ADVICE_NOTE";
  IfcProcedureTypeEnum.ADVICE_WARNING = "ADVICE_WARNING";
  IfcProcedureTypeEnum.CALIBRATION = "CALIBRATION";
  IfcProcedureTypeEnum.DIAGNOSTIC = "DIAGNOSTIC";
  IfcProcedureTypeEnum.SHUTDOWN = "SHUTDOWN";
  IfcProcedureTypeEnum.STARTUP = "STARTUP";
  IfcProcedureTypeEnum.USERDEFINED = "USERDEFINED";
  IfcProcedureTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcProfileTypeEnum = /*#__PURE__*/_createClass(function IfcProfileTypeEnum(v) {
    _classCallCheck(this, IfcProfileTypeEnum);

    this.value = v;
  });

  _exports.IfcProfileTypeEnum = IfcProfileTypeEnum;
  IfcProfileTypeEnum.CURVE = "CURVE";
  IfcProfileTypeEnum.AREA = "AREA";

  var IfcProjectOrderTypeEnum = /*#__PURE__*/_createClass(function IfcProjectOrderTypeEnum(v) {
    _classCallCheck(this, IfcProjectOrderTypeEnum);

    this.value = v;
  });

  _exports.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;
  IfcProjectOrderTypeEnum.CHANGEORDER = "CHANGEORDER";
  IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = "MAINTENANCEWORKORDER";
  IfcProjectOrderTypeEnum.MOVEORDER = "MOVEORDER";
  IfcProjectOrderTypeEnum.PURCHASEORDER = "PURCHASEORDER";
  IfcProjectOrderTypeEnum.WORKORDER = "WORKORDER";
  IfcProjectOrderTypeEnum.USERDEFINED = "USERDEFINED";
  IfcProjectOrderTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcProjectedOrTrueLengthEnum = /*#__PURE__*/_createClass(function IfcProjectedOrTrueLengthEnum(v) {
    _classCallCheck(this, IfcProjectedOrTrueLengthEnum);

    this.value = v;
  });

  _exports.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;
  IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = "PROJECTED_LENGTH";
  IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = "TRUE_LENGTH";

  var IfcProjectionElementTypeEnum = /*#__PURE__*/_createClass(function IfcProjectionElementTypeEnum(v) {
    _classCallCheck(this, IfcProjectionElementTypeEnum);

    this.value = v;
  });

  _exports.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;
  IfcProjectionElementTypeEnum.BLISTER = "BLISTER";
  IfcProjectionElementTypeEnum.DEVIATOR = "DEVIATOR";
  IfcProjectionElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcProjectionElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPropertySetTemplateTypeEnum = /*#__PURE__*/_createClass(function IfcPropertySetTemplateTypeEnum(v) {
    _classCallCheck(this, IfcPropertySetTemplateTypeEnum);

    this.value = v;
  });

  _exports.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;
  IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = "PSET_TYPEDRIVENONLY";
  IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = "PSET_TYPEDRIVENOVERRIDE";
  IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = "PSET_OCCURRENCEDRIVEN";
  IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = "PSET_PERFORMANCEDRIVEN";
  IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = "QTO_TYPEDRIVENONLY";
  IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = "QTO_TYPEDRIVENOVERRIDE";
  IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = "QTO_OCCURRENCEDRIVEN";
  IfcPropertySetTemplateTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcProtectiveDeviceTrippingUnitTypeEnum = /*#__PURE__*/_createClass(function IfcProtectiveDeviceTrippingUnitTypeEnum(v) {
    _classCallCheck(this, IfcProtectiveDeviceTrippingUnitTypeEnum);

    this.value = v;
  });

  _exports.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;
  IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = "ELECTRONIC";
  IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = "ELECTROMAGNETIC";
  IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = "RESIDUALCURRENT";
  IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = "THERMAL";
  IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = "USERDEFINED";
  IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcProtectiveDeviceTypeEnum = /*#__PURE__*/_createClass(function IfcProtectiveDeviceTypeEnum(v) {
    _classCallCheck(this, IfcProtectiveDeviceTypeEnum);

    this.value = v;
  });

  _exports.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;
  IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = "CIRCUITBREAKER";
  IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = "EARTHLEAKAGECIRCUITBREAKER";
  IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = "EARTHINGSWITCH";
  IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = "FUSEDISCONNECTOR";
  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = "RESIDUALCURRENTCIRCUITBREAKER";
  IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = "RESIDUALCURRENTSWITCH";
  IfcProtectiveDeviceTypeEnum.VARISTOR = "VARISTOR";
  IfcProtectiveDeviceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcProtectiveDeviceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcPumpTypeEnum = /*#__PURE__*/_createClass(function IfcPumpTypeEnum(v) {
    _classCallCheck(this, IfcPumpTypeEnum);

    this.value = v;
  });

  _exports.IfcPumpTypeEnum = IfcPumpTypeEnum;
  IfcPumpTypeEnum.CIRCULATOR = "CIRCULATOR";
  IfcPumpTypeEnum.ENDSUCTION = "ENDSUCTION";
  IfcPumpTypeEnum.SPLITCASE = "SPLITCASE";
  IfcPumpTypeEnum.SUBMERSIBLEPUMP = "SUBMERSIBLEPUMP";
  IfcPumpTypeEnum.SUMPPUMP = "SUMPPUMP";
  IfcPumpTypeEnum.VERTICALINLINE = "VERTICALINLINE";
  IfcPumpTypeEnum.VERTICALTURBINE = "VERTICALTURBINE";
  IfcPumpTypeEnum.USERDEFINED = "USERDEFINED";
  IfcPumpTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcRailingTypeEnum = /*#__PURE__*/_createClass(function IfcRailingTypeEnum(v) {
    _classCallCheck(this, IfcRailingTypeEnum);

    this.value = v;
  });

  _exports.IfcRailingTypeEnum = IfcRailingTypeEnum;
  IfcRailingTypeEnum.HANDRAIL = "HANDRAIL";
  IfcRailingTypeEnum.GUARDRAIL = "GUARDRAIL";
  IfcRailingTypeEnum.BALUSTRADE = "BALUSTRADE";
  IfcRailingTypeEnum.USERDEFINED = "USERDEFINED";
  IfcRailingTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcRampFlightTypeEnum = /*#__PURE__*/_createClass(function IfcRampFlightTypeEnum(v) {
    _classCallCheck(this, IfcRampFlightTypeEnum);

    this.value = v;
  });

  _exports.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;
  IfcRampFlightTypeEnum.STRAIGHT = "STRAIGHT";
  IfcRampFlightTypeEnum.SPIRAL = "SPIRAL";
  IfcRampFlightTypeEnum.USERDEFINED = "USERDEFINED";
  IfcRampFlightTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcRampTypeEnum = /*#__PURE__*/_createClass(function IfcRampTypeEnum(v) {
    _classCallCheck(this, IfcRampTypeEnum);

    this.value = v;
  });

  _exports.IfcRampTypeEnum = IfcRampTypeEnum;
  IfcRampTypeEnum.STRAIGHT_RUN_RAMP = "STRAIGHT_RUN_RAMP";
  IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = "TWO_STRAIGHT_RUN_RAMP";
  IfcRampTypeEnum.QUARTER_TURN_RAMP = "QUARTER_TURN_RAMP";
  IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = "TWO_QUARTER_TURN_RAMP";
  IfcRampTypeEnum.HALF_TURN_RAMP = "HALF_TURN_RAMP";
  IfcRampTypeEnum.SPIRAL_RAMP = "SPIRAL_RAMP";
  IfcRampTypeEnum.USERDEFINED = "USERDEFINED";
  IfcRampTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcRecurrenceTypeEnum = /*#__PURE__*/_createClass(function IfcRecurrenceTypeEnum(v) {
    _classCallCheck(this, IfcRecurrenceTypeEnum);

    this.value = v;
  });

  _exports.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;
  IfcRecurrenceTypeEnum.DAILY = "DAILY";
  IfcRecurrenceTypeEnum.WEEKLY = "WEEKLY";
  IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = "MONTHLY_BY_DAY_OF_MONTH";
  IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = "MONTHLY_BY_POSITION";
  IfcRecurrenceTypeEnum.BY_DAY_COUNT = "BY_DAY_COUNT";
  IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = "BY_WEEKDAY_COUNT";
  IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = "YEARLY_BY_DAY_OF_MONTH";
  IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = "YEARLY_BY_POSITION";

  var IfcReferentTypeEnum = /*#__PURE__*/_createClass(function IfcReferentTypeEnum(v) {
    _classCallCheck(this, IfcReferentTypeEnum);

    this.value = v;
  });

  _exports.IfcReferentTypeEnum = IfcReferentTypeEnum;
  IfcReferentTypeEnum.KILOPOINT = "KILOPOINT";
  IfcReferentTypeEnum.MILEPOINT = "MILEPOINT";
  IfcReferentTypeEnum.STATION = "STATION";
  IfcReferentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcReferentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcReflectanceMethodEnum = /*#__PURE__*/_createClass(function IfcReflectanceMethodEnum(v) {
    _classCallCheck(this, IfcReflectanceMethodEnum);

    this.value = v;
  });

  _exports.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;
  IfcReflectanceMethodEnum.BLINN = "BLINN";
  IfcReflectanceMethodEnum.FLAT = "FLAT";
  IfcReflectanceMethodEnum.GLASS = "GLASS";
  IfcReflectanceMethodEnum.MATT = "MATT";
  IfcReflectanceMethodEnum.METAL = "METAL";
  IfcReflectanceMethodEnum.MIRROR = "MIRROR";
  IfcReflectanceMethodEnum.PHONG = "PHONG";
  IfcReflectanceMethodEnum.PLASTIC = "PLASTIC";
  IfcReflectanceMethodEnum.STRAUSS = "STRAUSS";
  IfcReflectanceMethodEnum.NOTDEFINED = "NOTDEFINED";

  var IfcReinforcingBarRoleEnum = /*#__PURE__*/_createClass(function IfcReinforcingBarRoleEnum(v) {
    _classCallCheck(this, IfcReinforcingBarRoleEnum);

    this.value = v;
  });

  _exports.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;
  IfcReinforcingBarRoleEnum.MAIN = "MAIN";
  IfcReinforcingBarRoleEnum.SHEAR = "SHEAR";
  IfcReinforcingBarRoleEnum.LIGATURE = "LIGATURE";
  IfcReinforcingBarRoleEnum.STUD = "STUD";
  IfcReinforcingBarRoleEnum.PUNCHING = "PUNCHING";
  IfcReinforcingBarRoleEnum.EDGE = "EDGE";
  IfcReinforcingBarRoleEnum.RING = "RING";
  IfcReinforcingBarRoleEnum.ANCHORING = "ANCHORING";
  IfcReinforcingBarRoleEnum.USERDEFINED = "USERDEFINED";
  IfcReinforcingBarRoleEnum.NOTDEFINED = "NOTDEFINED";

  var IfcReinforcingBarSurfaceEnum = /*#__PURE__*/_createClass(function IfcReinforcingBarSurfaceEnum(v) {
    _classCallCheck(this, IfcReinforcingBarSurfaceEnum);

    this.value = v;
  });

  _exports.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;
  IfcReinforcingBarSurfaceEnum.PLAIN = "PLAIN";
  IfcReinforcingBarSurfaceEnum.TEXTURED = "TEXTURED";

  var IfcReinforcingBarTypeEnum = /*#__PURE__*/_createClass(function IfcReinforcingBarTypeEnum(v) {
    _classCallCheck(this, IfcReinforcingBarTypeEnum);

    this.value = v;
  });

  _exports.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;
  IfcReinforcingBarTypeEnum.ANCHORING = "ANCHORING";
  IfcReinforcingBarTypeEnum.EDGE = "EDGE";
  IfcReinforcingBarTypeEnum.LIGATURE = "LIGATURE";
  IfcReinforcingBarTypeEnum.MAIN = "MAIN";
  IfcReinforcingBarTypeEnum.PUNCHING = "PUNCHING";
  IfcReinforcingBarTypeEnum.RING = "RING";
  IfcReinforcingBarTypeEnum.SHEAR = "SHEAR";
  IfcReinforcingBarTypeEnum.STUD = "STUD";
  IfcReinforcingBarTypeEnum.SPACEBAR = "SPACEBAR";
  IfcReinforcingBarTypeEnum.USERDEFINED = "USERDEFINED";
  IfcReinforcingBarTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcReinforcingMeshTypeEnum = /*#__PURE__*/_createClass(function IfcReinforcingMeshTypeEnum(v) {
    _classCallCheck(this, IfcReinforcingMeshTypeEnum);

    this.value = v;
  });

  _exports.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;
  IfcReinforcingMeshTypeEnum.USERDEFINED = "USERDEFINED";
  IfcReinforcingMeshTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcRoleEnum = /*#__PURE__*/_createClass(function IfcRoleEnum(v) {
    _classCallCheck(this, IfcRoleEnum);

    this.value = v;
  });

  _exports.IfcRoleEnum = IfcRoleEnum;
  IfcRoleEnum.SUPPLIER = "SUPPLIER";
  IfcRoleEnum.MANUFACTURER = "MANUFACTURER";
  IfcRoleEnum.CONTRACTOR = "CONTRACTOR";
  IfcRoleEnum.SUBCONTRACTOR = "SUBCONTRACTOR";
  IfcRoleEnum.ARCHITECT = "ARCHITECT";
  IfcRoleEnum.STRUCTURALENGINEER = "STRUCTURALENGINEER";
  IfcRoleEnum.COSTENGINEER = "COSTENGINEER";
  IfcRoleEnum.CLIENT = "CLIENT";
  IfcRoleEnum.BUILDINGOWNER = "BUILDINGOWNER";
  IfcRoleEnum.BUILDINGOPERATOR = "BUILDINGOPERATOR";
  IfcRoleEnum.MECHANICALENGINEER = "MECHANICALENGINEER";
  IfcRoleEnum.ELECTRICALENGINEER = "ELECTRICALENGINEER";
  IfcRoleEnum.PROJECTMANAGER = "PROJECTMANAGER";
  IfcRoleEnum.FACILITIESMANAGER = "FACILITIESMANAGER";
  IfcRoleEnum.CIVILENGINEER = "CIVILENGINEER";
  IfcRoleEnum.COMMISSIONINGENGINEER = "COMMISSIONINGENGINEER";
  IfcRoleEnum.ENGINEER = "ENGINEER";
  IfcRoleEnum.OWNER = "OWNER";
  IfcRoleEnum.CONSULTANT = "CONSULTANT";
  IfcRoleEnum.CONSTRUCTIONMANAGER = "CONSTRUCTIONMANAGER";
  IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = "FIELDCONSTRUCTIONMANAGER";
  IfcRoleEnum.RESELLER = "RESELLER";
  IfcRoleEnum.USERDEFINED = "USERDEFINED";

  var IfcRoofTypeEnum = /*#__PURE__*/_createClass(function IfcRoofTypeEnum(v) {
    _classCallCheck(this, IfcRoofTypeEnum);

    this.value = v;
  });

  _exports.IfcRoofTypeEnum = IfcRoofTypeEnum;
  IfcRoofTypeEnum.FLAT_ROOF = "FLAT_ROOF";
  IfcRoofTypeEnum.SHED_ROOF = "SHED_ROOF";
  IfcRoofTypeEnum.GABLE_ROOF = "GABLE_ROOF";
  IfcRoofTypeEnum.HIP_ROOF = "HIP_ROOF";
  IfcRoofTypeEnum.HIPPED_GABLE_ROOF = "HIPPED_GABLE_ROOF";
  IfcRoofTypeEnum.GAMBREL_ROOF = "GAMBREL_ROOF";
  IfcRoofTypeEnum.MANSARD_ROOF = "MANSARD_ROOF";
  IfcRoofTypeEnum.BARREL_ROOF = "BARREL_ROOF";
  IfcRoofTypeEnum.RAINBOW_ROOF = "RAINBOW_ROOF";
  IfcRoofTypeEnum.BUTTERFLY_ROOF = "BUTTERFLY_ROOF";
  IfcRoofTypeEnum.PAVILION_ROOF = "PAVILION_ROOF";
  IfcRoofTypeEnum.DOME_ROOF = "DOME_ROOF";
  IfcRoofTypeEnum.FREEFORM = "FREEFORM";
  IfcRoofTypeEnum.USERDEFINED = "USERDEFINED";
  IfcRoofTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSIPrefix = /*#__PURE__*/_createClass(function IfcSIPrefix(v) {
    _classCallCheck(this, IfcSIPrefix);

    this.value = v;
  });

  _exports.IfcSIPrefix = IfcSIPrefix;
  IfcSIPrefix.EXA = "EXA";
  IfcSIPrefix.PETA = "PETA";
  IfcSIPrefix.TERA = "TERA";
  IfcSIPrefix.GIGA = "GIGA";
  IfcSIPrefix.MEGA = "MEGA";
  IfcSIPrefix.KILO = "KILO";
  IfcSIPrefix.HECTO = "HECTO";
  IfcSIPrefix.DECA = "DECA";
  IfcSIPrefix.DECI = "DECI";
  IfcSIPrefix.CENTI = "CENTI";
  IfcSIPrefix.MILLI = "MILLI";
  IfcSIPrefix.MICRO = "MICRO";
  IfcSIPrefix.NANO = "NANO";
  IfcSIPrefix.PICO = "PICO";
  IfcSIPrefix.FEMTO = "FEMTO";
  IfcSIPrefix.ATTO = "ATTO";

  var IfcSIUnitName = /*#__PURE__*/_createClass(function IfcSIUnitName(v) {
    _classCallCheck(this, IfcSIUnitName);

    this.value = v;
  });

  _exports.IfcSIUnitName = IfcSIUnitName;
  IfcSIUnitName.AMPERE = "AMPERE";
  IfcSIUnitName.BECQUEREL = "BECQUEREL";
  IfcSIUnitName.CANDELA = "CANDELA";
  IfcSIUnitName.COULOMB = "COULOMB";
  IfcSIUnitName.CUBIC_METRE = "CUBIC_METRE";
  IfcSIUnitName.DEGREE_CELSIUS = "DEGREE_CELSIUS";
  IfcSIUnitName.FARAD = "FARAD";
  IfcSIUnitName.GRAM = "GRAM";
  IfcSIUnitName.GRAY = "GRAY";
  IfcSIUnitName.HENRY = "HENRY";
  IfcSIUnitName.HERTZ = "HERTZ";
  IfcSIUnitName.JOULE = "JOULE";
  IfcSIUnitName.KELVIN = "KELVIN";
  IfcSIUnitName.LUMEN = "LUMEN";
  IfcSIUnitName.LUX = "LUX";
  IfcSIUnitName.METRE = "METRE";
  IfcSIUnitName.MOLE = "MOLE";
  IfcSIUnitName.NEWTON = "NEWTON";
  IfcSIUnitName.OHM = "OHM";
  IfcSIUnitName.PASCAL = "PASCAL";
  IfcSIUnitName.RADIAN = "RADIAN";
  IfcSIUnitName.SECOND = "SECOND";
  IfcSIUnitName.SIEMENS = "SIEMENS";
  IfcSIUnitName.SIEVERT = "SIEVERT";
  IfcSIUnitName.SQUARE_METRE = "SQUARE_METRE";
  IfcSIUnitName.STERADIAN = "STERADIAN";
  IfcSIUnitName.TESLA = "TESLA";
  IfcSIUnitName.VOLT = "VOLT";
  IfcSIUnitName.WATT = "WATT";
  IfcSIUnitName.WEBER = "WEBER";

  var IfcSanitaryTerminalTypeEnum = /*#__PURE__*/_createClass(function IfcSanitaryTerminalTypeEnum(v) {
    _classCallCheck(this, IfcSanitaryTerminalTypeEnum);

    this.value = v;
  });

  _exports.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;
  IfcSanitaryTerminalTypeEnum.BATH = "BATH";
  IfcSanitaryTerminalTypeEnum.BIDET = "BIDET";
  IfcSanitaryTerminalTypeEnum.CISTERN = "CISTERN";
  IfcSanitaryTerminalTypeEnum.SHOWER = "SHOWER";
  IfcSanitaryTerminalTypeEnum.SINK = "SINK";
  IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = "SANITARYFOUNTAIN";
  IfcSanitaryTerminalTypeEnum.TOILETPAN = "TOILETPAN";
  IfcSanitaryTerminalTypeEnum.URINAL = "URINAL";
  IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = "WASHHANDBASIN";
  IfcSanitaryTerminalTypeEnum.WCSEAT = "WCSEAT";
  IfcSanitaryTerminalTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSanitaryTerminalTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSectionTypeEnum = /*#__PURE__*/_createClass(function IfcSectionTypeEnum(v) {
    _classCallCheck(this, IfcSectionTypeEnum);

    this.value = v;
  });

  _exports.IfcSectionTypeEnum = IfcSectionTypeEnum;
  IfcSectionTypeEnum.UNIFORM = "UNIFORM";
  IfcSectionTypeEnum.TAPERED = "TAPERED";

  var IfcSensorTypeEnum = /*#__PURE__*/_createClass(function IfcSensorTypeEnum(v) {
    _classCallCheck(this, IfcSensorTypeEnum);

    this.value = v;
  });

  _exports.IfcSensorTypeEnum = IfcSensorTypeEnum;
  IfcSensorTypeEnum.COSENSOR = "COSENSOR";
  IfcSensorTypeEnum.CO2SENSOR = "CO2SENSOR";
  IfcSensorTypeEnum.CONDUCTANCESENSOR = "CONDUCTANCESENSOR";
  IfcSensorTypeEnum.CONTACTSENSOR = "CONTACTSENSOR";
  IfcSensorTypeEnum.FIRESENSOR = "FIRESENSOR";
  IfcSensorTypeEnum.FLOWSENSOR = "FLOWSENSOR";
  IfcSensorTypeEnum.FROSTSENSOR = "FROSTSENSOR";
  IfcSensorTypeEnum.GASSENSOR = "GASSENSOR";
  IfcSensorTypeEnum.HEATSENSOR = "HEATSENSOR";
  IfcSensorTypeEnum.HUMIDITYSENSOR = "HUMIDITYSENSOR";
  IfcSensorTypeEnum.IDENTIFIERSENSOR = "IDENTIFIERSENSOR";
  IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = "IONCONCENTRATIONSENSOR";
  IfcSensorTypeEnum.LEVELSENSOR = "LEVELSENSOR";
  IfcSensorTypeEnum.LIGHTSENSOR = "LIGHTSENSOR";
  IfcSensorTypeEnum.MOISTURESENSOR = "MOISTURESENSOR";
  IfcSensorTypeEnum.MOVEMENTSENSOR = "MOVEMENTSENSOR";
  IfcSensorTypeEnum.PHSENSOR = "PHSENSOR";
  IfcSensorTypeEnum.PRESSURESENSOR = "PRESSURESENSOR";
  IfcSensorTypeEnum.RADIATIONSENSOR = "RADIATIONSENSOR";
  IfcSensorTypeEnum.RADIOACTIVITYSENSOR = "RADIOACTIVITYSENSOR";
  IfcSensorTypeEnum.SMOKESENSOR = "SMOKESENSOR";
  IfcSensorTypeEnum.SOUNDSENSOR = "SOUNDSENSOR";
  IfcSensorTypeEnum.TEMPERATURESENSOR = "TEMPERATURESENSOR";
  IfcSensorTypeEnum.WINDSENSOR = "WINDSENSOR";
  IfcSensorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSensorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSequenceEnum = /*#__PURE__*/_createClass(function IfcSequenceEnum(v) {
    _classCallCheck(this, IfcSequenceEnum);

    this.value = v;
  });

  _exports.IfcSequenceEnum = IfcSequenceEnum;
  IfcSequenceEnum.START_START = "START_START";
  IfcSequenceEnum.START_FINISH = "START_FINISH";
  IfcSequenceEnum.FINISH_START = "FINISH_START";
  IfcSequenceEnum.FINISH_FINISH = "FINISH_FINISH";
  IfcSequenceEnum.USERDEFINED = "USERDEFINED";
  IfcSequenceEnum.NOTDEFINED = "NOTDEFINED";

  var IfcShadingDeviceTypeEnum = /*#__PURE__*/_createClass(function IfcShadingDeviceTypeEnum(v) {
    _classCallCheck(this, IfcShadingDeviceTypeEnum);

    this.value = v;
  });

  _exports.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;
  IfcShadingDeviceTypeEnum.JALOUSIE = "JALOUSIE";
  IfcShadingDeviceTypeEnum.SHUTTER = "SHUTTER";
  IfcShadingDeviceTypeEnum.AWNING = "AWNING";
  IfcShadingDeviceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcShadingDeviceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSimplePropertyTemplateTypeEnum = /*#__PURE__*/_createClass(function IfcSimplePropertyTemplateTypeEnum(v) {
    _classCallCheck(this, IfcSimplePropertyTemplateTypeEnum);

    this.value = v;
  });

  _exports.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;
  IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = "P_SINGLEVALUE";
  IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = "P_ENUMERATEDVALUE";
  IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = "P_BOUNDEDVALUE";
  IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = "P_LISTVALUE";
  IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = "P_TABLEVALUE";
  IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = "P_REFERENCEVALUE";
  IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = "Q_LENGTH";
  IfcSimplePropertyTemplateTypeEnum.Q_AREA = "Q_AREA";
  IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = "Q_VOLUME";
  IfcSimplePropertyTemplateTypeEnum.Q_COUNT = "Q_COUNT";
  IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = "Q_WEIGHT";
  IfcSimplePropertyTemplateTypeEnum.Q_TIME = "Q_TIME";

  var IfcSlabTypeEnum = /*#__PURE__*/_createClass(function IfcSlabTypeEnum(v) {
    _classCallCheck(this, IfcSlabTypeEnum);

    this.value = v;
  });

  _exports.IfcSlabTypeEnum = IfcSlabTypeEnum;
  IfcSlabTypeEnum.FLOOR = "FLOOR";
  IfcSlabTypeEnum.ROOF = "ROOF";
  IfcSlabTypeEnum.LANDING = "LANDING";
  IfcSlabTypeEnum.BASESLAB = "BASESLAB";
  IfcSlabTypeEnum.APPROACH_SLAB = "APPROACH_SLAB";
  IfcSlabTypeEnum.PAVING = "PAVING";
  IfcSlabTypeEnum.WEARING = "WEARING";
  IfcSlabTypeEnum.SIDEWALK = "SIDEWALK";
  IfcSlabTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSlabTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSolarDeviceTypeEnum = /*#__PURE__*/_createClass(function IfcSolarDeviceTypeEnum(v) {
    _classCallCheck(this, IfcSolarDeviceTypeEnum);

    this.value = v;
  });

  _exports.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;
  IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = "SOLARCOLLECTOR";
  IfcSolarDeviceTypeEnum.SOLARPANEL = "SOLARPANEL";
  IfcSolarDeviceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSolarDeviceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSpaceHeaterTypeEnum = /*#__PURE__*/_createClass(function IfcSpaceHeaterTypeEnum(v) {
    _classCallCheck(this, IfcSpaceHeaterTypeEnum);

    this.value = v;
  });

  _exports.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;
  IfcSpaceHeaterTypeEnum.CONVECTOR = "CONVECTOR";
  IfcSpaceHeaterTypeEnum.RADIATOR = "RADIATOR";
  IfcSpaceHeaterTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSpaceHeaterTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSpaceTypeEnum = /*#__PURE__*/_createClass(function IfcSpaceTypeEnum(v) {
    _classCallCheck(this, IfcSpaceTypeEnum);

    this.value = v;
  });

  _exports.IfcSpaceTypeEnum = IfcSpaceTypeEnum;
  IfcSpaceTypeEnum.SPACE = "SPACE";
  IfcSpaceTypeEnum.PARKING = "PARKING";
  IfcSpaceTypeEnum.GFA = "GFA";
  IfcSpaceTypeEnum.INTERNAL = "INTERNAL";
  IfcSpaceTypeEnum.EXTERNAL = "EXTERNAL";
  IfcSpaceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSpaceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSpatialZoneTypeEnum = /*#__PURE__*/_createClass(function IfcSpatialZoneTypeEnum(v) {
    _classCallCheck(this, IfcSpatialZoneTypeEnum);

    this.value = v;
  });

  _exports.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;
  IfcSpatialZoneTypeEnum.CONSTRUCTION = "CONSTRUCTION";
  IfcSpatialZoneTypeEnum.FIRESAFETY = "FIRESAFETY";
  IfcSpatialZoneTypeEnum.LIGHTING = "LIGHTING";
  IfcSpatialZoneTypeEnum.OCCUPANCY = "OCCUPANCY";
  IfcSpatialZoneTypeEnum.SECURITY = "SECURITY";
  IfcSpatialZoneTypeEnum.THERMAL = "THERMAL";
  IfcSpatialZoneTypeEnum.TRANSPORT = "TRANSPORT";
  IfcSpatialZoneTypeEnum.VENTILATION = "VENTILATION";
  IfcSpatialZoneTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSpatialZoneTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStackTerminalTypeEnum = /*#__PURE__*/_createClass(function IfcStackTerminalTypeEnum(v) {
    _classCallCheck(this, IfcStackTerminalTypeEnum);

    this.value = v;
  });

  _exports.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;
  IfcStackTerminalTypeEnum.BIRDCAGE = "BIRDCAGE";
  IfcStackTerminalTypeEnum.COWL = "COWL";
  IfcStackTerminalTypeEnum.RAINWATERHOPPER = "RAINWATERHOPPER";
  IfcStackTerminalTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStackTerminalTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStairFlightTypeEnum = /*#__PURE__*/_createClass(function IfcStairFlightTypeEnum(v) {
    _classCallCheck(this, IfcStairFlightTypeEnum);

    this.value = v;
  });

  _exports.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;
  IfcStairFlightTypeEnum.STRAIGHT = "STRAIGHT";
  IfcStairFlightTypeEnum.WINDER = "WINDER";
  IfcStairFlightTypeEnum.SPIRAL = "SPIRAL";
  IfcStairFlightTypeEnum.CURVED = "CURVED";
  IfcStairFlightTypeEnum.FREEFORM = "FREEFORM";
  IfcStairFlightTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStairFlightTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStairTypeEnum = /*#__PURE__*/_createClass(function IfcStairTypeEnum(v) {
    _classCallCheck(this, IfcStairTypeEnum);

    this.value = v;
  });

  _exports.IfcStairTypeEnum = IfcStairTypeEnum;
  IfcStairTypeEnum.STRAIGHT_RUN_STAIR = "STRAIGHT_RUN_STAIR";
  IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = "TWO_STRAIGHT_RUN_STAIR";
  IfcStairTypeEnum.QUARTER_WINDING_STAIR = "QUARTER_WINDING_STAIR";
  IfcStairTypeEnum.QUARTER_TURN_STAIR = "QUARTER_TURN_STAIR";
  IfcStairTypeEnum.HALF_WINDING_STAIR = "HALF_WINDING_STAIR";
  IfcStairTypeEnum.HALF_TURN_STAIR = "HALF_TURN_STAIR";
  IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = "TWO_QUARTER_WINDING_STAIR";
  IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = "TWO_QUARTER_TURN_STAIR";
  IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = "THREE_QUARTER_WINDING_STAIR";
  IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = "THREE_QUARTER_TURN_STAIR";
  IfcStairTypeEnum.SPIRAL_STAIR = "SPIRAL_STAIR";
  IfcStairTypeEnum.DOUBLE_RETURN_STAIR = "DOUBLE_RETURN_STAIR";
  IfcStairTypeEnum.CURVED_RUN_STAIR = "CURVED_RUN_STAIR";
  IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = "TWO_CURVED_RUN_STAIR";
  IfcStairTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStairTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStateEnum = /*#__PURE__*/_createClass(function IfcStateEnum(v) {
    _classCallCheck(this, IfcStateEnum);

    this.value = v;
  });

  _exports.IfcStateEnum = IfcStateEnum;
  IfcStateEnum.READWRITE = "READWRITE";
  IfcStateEnum.READONLY = "READONLY";
  IfcStateEnum.LOCKED = "LOCKED";
  IfcStateEnum.READWRITELOCKED = "READWRITELOCKED";
  IfcStateEnum.READONLYLOCKED = "READONLYLOCKED";

  var IfcStructuralCurveActivityTypeEnum = /*#__PURE__*/_createClass(function IfcStructuralCurveActivityTypeEnum(v) {
    _classCallCheck(this, IfcStructuralCurveActivityTypeEnum);

    this.value = v;
  });

  _exports.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;
  IfcStructuralCurveActivityTypeEnum.CONST = "CONST";
  IfcStructuralCurveActivityTypeEnum.LINEAR = "LINEAR";
  IfcStructuralCurveActivityTypeEnum.POLYGONAL = "POLYGONAL";
  IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = "EQUIDISTANT";
  IfcStructuralCurveActivityTypeEnum.SINUS = "SINUS";
  IfcStructuralCurveActivityTypeEnum.PARABOLA = "PARABOLA";
  IfcStructuralCurveActivityTypeEnum.DISCRETE = "DISCRETE";
  IfcStructuralCurveActivityTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStructuralCurveActivityTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStructuralCurveMemberTypeEnum = /*#__PURE__*/_createClass(function IfcStructuralCurveMemberTypeEnum(v) {
    _classCallCheck(this, IfcStructuralCurveMemberTypeEnum);

    this.value = v;
  });

  _exports.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;
  IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = "RIGID_JOINED_MEMBER";
  IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = "PIN_JOINED_MEMBER";
  IfcStructuralCurveMemberTypeEnum.CABLE = "CABLE";
  IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = "TENSION_MEMBER";
  IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = "COMPRESSION_MEMBER";
  IfcStructuralCurveMemberTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStructuralCurveMemberTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStructuralSurfaceActivityTypeEnum = /*#__PURE__*/_createClass(function IfcStructuralSurfaceActivityTypeEnum(v) {
    _classCallCheck(this, IfcStructuralSurfaceActivityTypeEnum);

    this.value = v;
  });

  _exports.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;
  IfcStructuralSurfaceActivityTypeEnum.CONST = "CONST";
  IfcStructuralSurfaceActivityTypeEnum.BILINEAR = "BILINEAR";
  IfcStructuralSurfaceActivityTypeEnum.DISCRETE = "DISCRETE";
  IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = "ISOCONTOUR";
  IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcStructuralSurfaceMemberTypeEnum = /*#__PURE__*/_createClass(function IfcStructuralSurfaceMemberTypeEnum(v) {
    _classCallCheck(this, IfcStructuralSurfaceMemberTypeEnum);

    this.value = v;
  });

  _exports.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;
  IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = "BENDING_ELEMENT";
  IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = "MEMBRANE_ELEMENT";
  IfcStructuralSurfaceMemberTypeEnum.SHELL = "SHELL";
  IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = "USERDEFINED";
  IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSubContractResourceTypeEnum = /*#__PURE__*/_createClass(function IfcSubContractResourceTypeEnum(v) {
    _classCallCheck(this, IfcSubContractResourceTypeEnum);

    this.value = v;
  });

  _exports.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;
  IfcSubContractResourceTypeEnum.PURCHASE = "PURCHASE";
  IfcSubContractResourceTypeEnum.WORK = "WORK";
  IfcSubContractResourceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSubContractResourceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSurfaceFeatureTypeEnum = /*#__PURE__*/_createClass(function IfcSurfaceFeatureTypeEnum(v) {
    _classCallCheck(this, IfcSurfaceFeatureTypeEnum);

    this.value = v;
  });

  _exports.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;
  IfcSurfaceFeatureTypeEnum.MARK = "MARK";
  IfcSurfaceFeatureTypeEnum.TAG = "TAG";
  IfcSurfaceFeatureTypeEnum.TREATMENT = "TREATMENT";
  IfcSurfaceFeatureTypeEnum.DEFECT = "DEFECT";
  IfcSurfaceFeatureTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSurfaceFeatureTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSurfaceSide = /*#__PURE__*/_createClass(function IfcSurfaceSide(v) {
    _classCallCheck(this, IfcSurfaceSide);

    this.value = v;
  });

  _exports.IfcSurfaceSide = IfcSurfaceSide;
  IfcSurfaceSide.POSITIVE = "POSITIVE";
  IfcSurfaceSide.NEGATIVE = "NEGATIVE";
  IfcSurfaceSide.BOTH = "BOTH";

  var IfcSwitchingDeviceTypeEnum = /*#__PURE__*/_createClass(function IfcSwitchingDeviceTypeEnum(v) {
    _classCallCheck(this, IfcSwitchingDeviceTypeEnum);

    this.value = v;
  });

  _exports.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;
  IfcSwitchingDeviceTypeEnum.CONTACTOR = "CONTACTOR";
  IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = "DIMMERSWITCH";
  IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = "EMERGENCYSTOP";
  IfcSwitchingDeviceTypeEnum.KEYPAD = "KEYPAD";
  IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = "MOMENTARYSWITCH";
  IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = "SELECTORSWITCH";
  IfcSwitchingDeviceTypeEnum.STARTER = "STARTER";
  IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = "SWITCHDISCONNECTOR";
  IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = "TOGGLESWITCH";
  IfcSwitchingDeviceTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSwitchingDeviceTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcSystemFurnitureElementTypeEnum = /*#__PURE__*/_createClass(function IfcSystemFurnitureElementTypeEnum(v) {
    _classCallCheck(this, IfcSystemFurnitureElementTypeEnum);

    this.value = v;
  });

  _exports.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;
  IfcSystemFurnitureElementTypeEnum.PANEL = "PANEL";
  IfcSystemFurnitureElementTypeEnum.WORKSURFACE = "WORKSURFACE";
  IfcSystemFurnitureElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcSystemFurnitureElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTankTypeEnum = /*#__PURE__*/_createClass(function IfcTankTypeEnum(v) {
    _classCallCheck(this, IfcTankTypeEnum);

    this.value = v;
  });

  _exports.IfcTankTypeEnum = IfcTankTypeEnum;
  IfcTankTypeEnum.BASIN = "BASIN";
  IfcTankTypeEnum.BREAKPRESSURE = "BREAKPRESSURE";
  IfcTankTypeEnum.EXPANSION = "EXPANSION";
  IfcTankTypeEnum.FEEDANDEXPANSION = "FEEDANDEXPANSION";
  IfcTankTypeEnum.PRESSUREVESSEL = "PRESSUREVESSEL";
  IfcTankTypeEnum.STORAGE = "STORAGE";
  IfcTankTypeEnum.VESSEL = "VESSEL";
  IfcTankTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTankTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTaskDurationEnum = /*#__PURE__*/_createClass(function IfcTaskDurationEnum(v) {
    _classCallCheck(this, IfcTaskDurationEnum);

    this.value = v;
  });

  _exports.IfcTaskDurationEnum = IfcTaskDurationEnum;
  IfcTaskDurationEnum.ELAPSEDTIME = "ELAPSEDTIME";
  IfcTaskDurationEnum.WORKTIME = "WORKTIME";
  IfcTaskDurationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTaskTypeEnum = /*#__PURE__*/_createClass(function IfcTaskTypeEnum(v) {
    _classCallCheck(this, IfcTaskTypeEnum);

    this.value = v;
  });

  _exports.IfcTaskTypeEnum = IfcTaskTypeEnum;
  IfcTaskTypeEnum.ATTENDANCE = "ATTENDANCE";
  IfcTaskTypeEnum.CONSTRUCTION = "CONSTRUCTION";
  IfcTaskTypeEnum.DEMOLITION = "DEMOLITION";
  IfcTaskTypeEnum.DISMANTLE = "DISMANTLE";
  IfcTaskTypeEnum.DISPOSAL = "DISPOSAL";
  IfcTaskTypeEnum.INSTALLATION = "INSTALLATION";
  IfcTaskTypeEnum.LOGISTIC = "LOGISTIC";
  IfcTaskTypeEnum.MAINTENANCE = "MAINTENANCE";
  IfcTaskTypeEnum.MOVE = "MOVE";
  IfcTaskTypeEnum.OPERATION = "OPERATION";
  IfcTaskTypeEnum.REMOVAL = "REMOVAL";
  IfcTaskTypeEnum.RENOVATION = "RENOVATION";
  IfcTaskTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTaskTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTendonAnchorTypeEnum = /*#__PURE__*/_createClass(function IfcTendonAnchorTypeEnum(v) {
    _classCallCheck(this, IfcTendonAnchorTypeEnum);

    this.value = v;
  });

  _exports.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;
  IfcTendonAnchorTypeEnum.COUPLER = "COUPLER";
  IfcTendonAnchorTypeEnum.FIXED_END = "FIXED_END";
  IfcTendonAnchorTypeEnum.TENSIONING_END = "TENSIONING_END";
  IfcTendonAnchorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTendonAnchorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTendonConduitTypeEnum = /*#__PURE__*/_createClass(function IfcTendonConduitTypeEnum(v) {
    _classCallCheck(this, IfcTendonConduitTypeEnum);

    this.value = v;
  });

  _exports.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum;
  IfcTendonConduitTypeEnum.DUCT = "DUCT";
  IfcTendonConduitTypeEnum.COUPLER = "COUPLER";
  IfcTendonConduitTypeEnum.GROUTING_DUCT = "GROUTING_DUCT";
  IfcTendonConduitTypeEnum.TRUMPET = "TRUMPET";
  IfcTendonConduitTypeEnum.DIABOLO = "DIABOLO";
  IfcTendonConduitTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTendonConduitTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTendonTypeEnum = /*#__PURE__*/_createClass(function IfcTendonTypeEnum(v) {
    _classCallCheck(this, IfcTendonTypeEnum);

    this.value = v;
  });

  _exports.IfcTendonTypeEnum = IfcTendonTypeEnum;
  IfcTendonTypeEnum.BAR = "BAR";
  IfcTendonTypeEnum.COATED = "COATED";
  IfcTendonTypeEnum.STRAND = "STRAND";
  IfcTendonTypeEnum.WIRE = "WIRE";
  IfcTendonTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTendonTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTextPath = /*#__PURE__*/_createClass(function IfcTextPath(v) {
    _classCallCheck(this, IfcTextPath);

    this.value = v;
  });

  _exports.IfcTextPath = IfcTextPath;
  IfcTextPath.LEFT = "LEFT";
  IfcTextPath.RIGHT = "RIGHT";
  IfcTextPath.UP = "UP";
  IfcTextPath.DOWN = "DOWN";

  var IfcTimeSeriesDataTypeEnum = /*#__PURE__*/_createClass(function IfcTimeSeriesDataTypeEnum(v) {
    _classCallCheck(this, IfcTimeSeriesDataTypeEnum);

    this.value = v;
  });

  _exports.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;
  IfcTimeSeriesDataTypeEnum.CONTINUOUS = "CONTINUOUS";
  IfcTimeSeriesDataTypeEnum.DISCRETE = "DISCRETE";
  IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = "DISCRETEBINARY";
  IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = "PIECEWISEBINARY";
  IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = "PIECEWISECONSTANT";
  IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = "PIECEWISECONTINUOUS";
  IfcTimeSeriesDataTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTransformerTypeEnum = /*#__PURE__*/_createClass(function IfcTransformerTypeEnum(v) {
    _classCallCheck(this, IfcTransformerTypeEnum);

    this.value = v;
  });

  _exports.IfcTransformerTypeEnum = IfcTransformerTypeEnum;
  IfcTransformerTypeEnum.CURRENT = "CURRENT";
  IfcTransformerTypeEnum.FREQUENCY = "FREQUENCY";
  IfcTransformerTypeEnum.INVERTER = "INVERTER";
  IfcTransformerTypeEnum.RECTIFIER = "RECTIFIER";
  IfcTransformerTypeEnum.VOLTAGE = "VOLTAGE";
  IfcTransformerTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTransformerTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTransitionCode = /*#__PURE__*/_createClass(function IfcTransitionCode(v) {
    _classCallCheck(this, IfcTransitionCode);

    this.value = v;
  });

  _exports.IfcTransitionCode = IfcTransitionCode;
  IfcTransitionCode.DISCONTINUOUS = "DISCONTINUOUS";
  IfcTransitionCode.CONTINUOUS = "CONTINUOUS";
  IfcTransitionCode.CONTSAMEGRADIENT = "CONTSAMEGRADIENT";
  IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = "CONTSAMEGRADIENTSAMECURVATURE";

  var IfcTransitionCurveType = /*#__PURE__*/_createClass(function IfcTransitionCurveType(v) {
    _classCallCheck(this, IfcTransitionCurveType);

    this.value = v;
  });

  _exports.IfcTransitionCurveType = IfcTransitionCurveType;
  IfcTransitionCurveType.BIQUADRATICPARABOLA = "BIQUADRATICPARABOLA";
  IfcTransitionCurveType.BLOSSCURVE = "BLOSSCURVE";
  IfcTransitionCurveType.CLOTHOIDCURVE = "CLOTHOIDCURVE";
  IfcTransitionCurveType.COSINECURVE = "COSINECURVE";
  IfcTransitionCurveType.CUBICPARABOLA = "CUBICPARABOLA";
  IfcTransitionCurveType.SINECURVE = "SINECURVE";

  var IfcTransportElementTypeEnum = /*#__PURE__*/_createClass(function IfcTransportElementTypeEnum(v) {
    _classCallCheck(this, IfcTransportElementTypeEnum);

    this.value = v;
  });

  _exports.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;
  IfcTransportElementTypeEnum.ELEVATOR = "ELEVATOR";
  IfcTransportElementTypeEnum.ESCALATOR = "ESCALATOR";
  IfcTransportElementTypeEnum.MOVINGWALKWAY = "MOVINGWALKWAY";
  IfcTransportElementTypeEnum.CRANEWAY = "CRANEWAY";
  IfcTransportElementTypeEnum.LIFTINGGEAR = "LIFTINGGEAR";
  IfcTransportElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTransportElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcTrimmingPreference = /*#__PURE__*/_createClass(function IfcTrimmingPreference(v) {
    _classCallCheck(this, IfcTrimmingPreference);

    this.value = v;
  });

  _exports.IfcTrimmingPreference = IfcTrimmingPreference;
  IfcTrimmingPreference.CARTESIAN = "CARTESIAN";
  IfcTrimmingPreference.PARAMETER = "PARAMETER";
  IfcTrimmingPreference.UNSPECIFIED = "UNSPECIFIED";

  var IfcTubeBundleTypeEnum = /*#__PURE__*/_createClass(function IfcTubeBundleTypeEnum(v) {
    _classCallCheck(this, IfcTubeBundleTypeEnum);

    this.value = v;
  });

  _exports.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;
  IfcTubeBundleTypeEnum.FINNED = "FINNED";
  IfcTubeBundleTypeEnum.USERDEFINED = "USERDEFINED";
  IfcTubeBundleTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcUnitEnum = /*#__PURE__*/_createClass(function IfcUnitEnum(v) {
    _classCallCheck(this, IfcUnitEnum);

    this.value = v;
  });

  _exports.IfcUnitEnum = IfcUnitEnum;
  IfcUnitEnum.ABSORBEDDOSEUNIT = "ABSORBEDDOSEUNIT";
  IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = "AMOUNTOFSUBSTANCEUNIT";
  IfcUnitEnum.AREAUNIT = "AREAUNIT";
  IfcUnitEnum.DOSEEQUIVALENTUNIT = "DOSEEQUIVALENTUNIT";
  IfcUnitEnum.ELECTRICCAPACITANCEUNIT = "ELECTRICCAPACITANCEUNIT";
  IfcUnitEnum.ELECTRICCHARGEUNIT = "ELECTRICCHARGEUNIT";
  IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = "ELECTRICCONDUCTANCEUNIT";
  IfcUnitEnum.ELECTRICCURRENTUNIT = "ELECTRICCURRENTUNIT";
  IfcUnitEnum.ELECTRICRESISTANCEUNIT = "ELECTRICRESISTANCEUNIT";
  IfcUnitEnum.ELECTRICVOLTAGEUNIT = "ELECTRICVOLTAGEUNIT";
  IfcUnitEnum.ENERGYUNIT = "ENERGYUNIT";
  IfcUnitEnum.FORCEUNIT = "FORCEUNIT";
  IfcUnitEnum.FREQUENCYUNIT = "FREQUENCYUNIT";
  IfcUnitEnum.ILLUMINANCEUNIT = "ILLUMINANCEUNIT";
  IfcUnitEnum.INDUCTANCEUNIT = "INDUCTANCEUNIT";
  IfcUnitEnum.LENGTHUNIT = "LENGTHUNIT";
  IfcUnitEnum.LUMINOUSFLUXUNIT = "LUMINOUSFLUXUNIT";
  IfcUnitEnum.LUMINOUSINTENSITYUNIT = "LUMINOUSINTENSITYUNIT";
  IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = "MAGNETICFLUXDENSITYUNIT";
  IfcUnitEnum.MAGNETICFLUXUNIT = "MAGNETICFLUXUNIT";
  IfcUnitEnum.MASSUNIT = "MASSUNIT";
  IfcUnitEnum.PLANEANGLEUNIT = "PLANEANGLEUNIT";
  IfcUnitEnum.POWERUNIT = "POWERUNIT";
  IfcUnitEnum.PRESSUREUNIT = "PRESSUREUNIT";
  IfcUnitEnum.RADIOACTIVITYUNIT = "RADIOACTIVITYUNIT";
  IfcUnitEnum.SOLIDANGLEUNIT = "SOLIDANGLEUNIT";
  IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = "THERMODYNAMICTEMPERATUREUNIT";
  IfcUnitEnum.TIMEUNIT = "TIMEUNIT";
  IfcUnitEnum.VOLUMEUNIT = "VOLUMEUNIT";
  IfcUnitEnum.USERDEFINED = "USERDEFINED";

  var IfcUnitaryControlElementTypeEnum = /*#__PURE__*/_createClass(function IfcUnitaryControlElementTypeEnum(v) {
    _classCallCheck(this, IfcUnitaryControlElementTypeEnum);

    this.value = v;
  });

  _exports.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;
  IfcUnitaryControlElementTypeEnum.ALARMPANEL = "ALARMPANEL";
  IfcUnitaryControlElementTypeEnum.CONTROLPANEL = "CONTROLPANEL";
  IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = "GASDETECTIONPANEL";
  IfcUnitaryControlElementTypeEnum.INDICATORPANEL = "INDICATORPANEL";
  IfcUnitaryControlElementTypeEnum.MIMICPANEL = "MIMICPANEL";
  IfcUnitaryControlElementTypeEnum.HUMIDISTAT = "HUMIDISTAT";
  IfcUnitaryControlElementTypeEnum.THERMOSTAT = "THERMOSTAT";
  IfcUnitaryControlElementTypeEnum.WEATHERSTATION = "WEATHERSTATION";
  IfcUnitaryControlElementTypeEnum.USERDEFINED = "USERDEFINED";
  IfcUnitaryControlElementTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcUnitaryEquipmentTypeEnum = /*#__PURE__*/_createClass(function IfcUnitaryEquipmentTypeEnum(v) {
    _classCallCheck(this, IfcUnitaryEquipmentTypeEnum);

    this.value = v;
  });

  _exports.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;
  IfcUnitaryEquipmentTypeEnum.AIRHANDLER = "AIRHANDLER";
  IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = "AIRCONDITIONINGUNIT";
  IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = "DEHUMIDIFIER";
  IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = "SPLITSYSTEM";
  IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = "ROOFTOPUNIT";
  IfcUnitaryEquipmentTypeEnum.USERDEFINED = "USERDEFINED";
  IfcUnitaryEquipmentTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcValveTypeEnum = /*#__PURE__*/_createClass(function IfcValveTypeEnum(v) {
    _classCallCheck(this, IfcValveTypeEnum);

    this.value = v;
  });

  _exports.IfcValveTypeEnum = IfcValveTypeEnum;
  IfcValveTypeEnum.AIRRELEASE = "AIRRELEASE";
  IfcValveTypeEnum.ANTIVACUUM = "ANTIVACUUM";
  IfcValveTypeEnum.CHANGEOVER = "CHANGEOVER";
  IfcValveTypeEnum.CHECK = "CHECK";
  IfcValveTypeEnum.COMMISSIONING = "COMMISSIONING";
  IfcValveTypeEnum.DIVERTING = "DIVERTING";
  IfcValveTypeEnum.DRAWOFFCOCK = "DRAWOFFCOCK";
  IfcValveTypeEnum.DOUBLECHECK = "DOUBLECHECK";
  IfcValveTypeEnum.DOUBLEREGULATING = "DOUBLEREGULATING";
  IfcValveTypeEnum.FAUCET = "FAUCET";
  IfcValveTypeEnum.FLUSHING = "FLUSHING";
  IfcValveTypeEnum.GASCOCK = "GASCOCK";
  IfcValveTypeEnum.GASTAP = "GASTAP";
  IfcValveTypeEnum.ISOLATING = "ISOLATING";
  IfcValveTypeEnum.MIXING = "MIXING";
  IfcValveTypeEnum.PRESSUREREDUCING = "PRESSUREREDUCING";
  IfcValveTypeEnum.PRESSURERELIEF = "PRESSURERELIEF";
  IfcValveTypeEnum.REGULATING = "REGULATING";
  IfcValveTypeEnum.SAFETYCUTOFF = "SAFETYCUTOFF";
  IfcValveTypeEnum.STEAMTRAP = "STEAMTRAP";
  IfcValveTypeEnum.STOPCOCK = "STOPCOCK";
  IfcValveTypeEnum.USERDEFINED = "USERDEFINED";
  IfcValveTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcVibrationDamperTypeEnum = /*#__PURE__*/_createClass(function IfcVibrationDamperTypeEnum(v) {
    _classCallCheck(this, IfcVibrationDamperTypeEnum);

    this.value = v;
  });

  _exports.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum;
  IfcVibrationDamperTypeEnum.BENDING_YIELD = "BENDING_YIELD";
  IfcVibrationDamperTypeEnum.SHEAR_YIELD = "SHEAR_YIELD";
  IfcVibrationDamperTypeEnum.AXIAL_YIELD = "AXIAL_YIELD";
  IfcVibrationDamperTypeEnum.FRICTION = "FRICTION";
  IfcVibrationDamperTypeEnum.VISCOUS = "VISCOUS";
  IfcVibrationDamperTypeEnum.RUBBER = "RUBBER";
  IfcVibrationDamperTypeEnum.USERDEFINED = "USERDEFINED";
  IfcVibrationDamperTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcVibrationIsolatorTypeEnum = /*#__PURE__*/_createClass(function IfcVibrationIsolatorTypeEnum(v) {
    _classCallCheck(this, IfcVibrationIsolatorTypeEnum);

    this.value = v;
  });

  _exports.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;
  IfcVibrationIsolatorTypeEnum.COMPRESSION = "COMPRESSION";
  IfcVibrationIsolatorTypeEnum.SPRING = "SPRING";
  IfcVibrationIsolatorTypeEnum.BASE = "BASE";
  IfcVibrationIsolatorTypeEnum.USERDEFINED = "USERDEFINED";
  IfcVibrationIsolatorTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcVoidingFeatureTypeEnum = /*#__PURE__*/_createClass(function IfcVoidingFeatureTypeEnum(v) {
    _classCallCheck(this, IfcVoidingFeatureTypeEnum);

    this.value = v;
  });

  _exports.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;
  IfcVoidingFeatureTypeEnum.CUTOUT = "CUTOUT";
  IfcVoidingFeatureTypeEnum.NOTCH = "NOTCH";
  IfcVoidingFeatureTypeEnum.HOLE = "HOLE";
  IfcVoidingFeatureTypeEnum.MITER = "MITER";
  IfcVoidingFeatureTypeEnum.CHAMFER = "CHAMFER";
  IfcVoidingFeatureTypeEnum.EDGE = "EDGE";
  IfcVoidingFeatureTypeEnum.USERDEFINED = "USERDEFINED";
  IfcVoidingFeatureTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWallTypeEnum = /*#__PURE__*/_createClass(function IfcWallTypeEnum(v) {
    _classCallCheck(this, IfcWallTypeEnum);

    this.value = v;
  });

  _exports.IfcWallTypeEnum = IfcWallTypeEnum;
  IfcWallTypeEnum.MOVABLE = "MOVABLE";
  IfcWallTypeEnum.PARAPET = "PARAPET";
  IfcWallTypeEnum.PARTITIONING = "PARTITIONING";
  IfcWallTypeEnum.PLUMBINGWALL = "PLUMBINGWALL";
  IfcWallTypeEnum.SHEAR = "SHEAR";
  IfcWallTypeEnum.SOLIDWALL = "SOLIDWALL";
  IfcWallTypeEnum.STANDARD = "STANDARD";
  IfcWallTypeEnum.POLYGONAL = "POLYGONAL";
  IfcWallTypeEnum.ELEMENTEDWALL = "ELEMENTEDWALL";
  IfcWallTypeEnum.RETAININGWALL = "RETAININGWALL";
  IfcWallTypeEnum.USERDEFINED = "USERDEFINED";
  IfcWallTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWasteTerminalTypeEnum = /*#__PURE__*/_createClass(function IfcWasteTerminalTypeEnum(v) {
    _classCallCheck(this, IfcWasteTerminalTypeEnum);

    this.value = v;
  });

  _exports.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;
  IfcWasteTerminalTypeEnum.FLOORTRAP = "FLOORTRAP";
  IfcWasteTerminalTypeEnum.FLOORWASTE = "FLOORWASTE";
  IfcWasteTerminalTypeEnum.GULLYSUMP = "GULLYSUMP";
  IfcWasteTerminalTypeEnum.GULLYTRAP = "GULLYTRAP";
  IfcWasteTerminalTypeEnum.ROOFDRAIN = "ROOFDRAIN";
  IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = "WASTEDISPOSALUNIT";
  IfcWasteTerminalTypeEnum.WASTETRAP = "WASTETRAP";
  IfcWasteTerminalTypeEnum.USERDEFINED = "USERDEFINED";
  IfcWasteTerminalTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWindowPanelOperationEnum = /*#__PURE__*/_createClass(function IfcWindowPanelOperationEnum(v) {
    _classCallCheck(this, IfcWindowPanelOperationEnum);

    this.value = v;
  });

  _exports.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;
  IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = "SIDEHUNGRIGHTHAND";
  IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = "SIDEHUNGLEFTHAND";
  IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = "TILTANDTURNRIGHTHAND";
  IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = "TILTANDTURNLEFTHAND";
  IfcWindowPanelOperationEnum.TOPHUNG = "TOPHUNG";
  IfcWindowPanelOperationEnum.BOTTOMHUNG = "BOTTOMHUNG";
  IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = "PIVOTHORIZONTAL";
  IfcWindowPanelOperationEnum.PIVOTVERTICAL = "PIVOTVERTICAL";
  IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = "SLIDINGHORIZONTAL";
  IfcWindowPanelOperationEnum.SLIDINGVERTICAL = "SLIDINGVERTICAL";
  IfcWindowPanelOperationEnum.REMOVABLECASEMENT = "REMOVABLECASEMENT";
  IfcWindowPanelOperationEnum.FIXEDCASEMENT = "FIXEDCASEMENT";
  IfcWindowPanelOperationEnum.OTHEROPERATION = "OTHEROPERATION";
  IfcWindowPanelOperationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWindowPanelPositionEnum = /*#__PURE__*/_createClass(function IfcWindowPanelPositionEnum(v) {
    _classCallCheck(this, IfcWindowPanelPositionEnum);

    this.value = v;
  });

  _exports.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;
  IfcWindowPanelPositionEnum.LEFT = "LEFT";
  IfcWindowPanelPositionEnum.MIDDLE = "MIDDLE";
  IfcWindowPanelPositionEnum.RIGHT = "RIGHT";
  IfcWindowPanelPositionEnum.BOTTOM = "BOTTOM";
  IfcWindowPanelPositionEnum.TOP = "TOP";
  IfcWindowPanelPositionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWindowStyleConstructionEnum = /*#__PURE__*/_createClass(function IfcWindowStyleConstructionEnum(v) {
    _classCallCheck(this, IfcWindowStyleConstructionEnum);

    this.value = v;
  });

  _exports.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;
  IfcWindowStyleConstructionEnum.ALUMINIUM = "ALUMINIUM";
  IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = "HIGH_GRADE_STEEL";
  IfcWindowStyleConstructionEnum.STEEL = "STEEL";
  IfcWindowStyleConstructionEnum.WOOD = "WOOD";
  IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = "ALUMINIUM_WOOD";
  IfcWindowStyleConstructionEnum.PLASTIC = "PLASTIC";
  IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = "OTHER_CONSTRUCTION";
  IfcWindowStyleConstructionEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWindowStyleOperationEnum = /*#__PURE__*/_createClass(function IfcWindowStyleOperationEnum(v) {
    _classCallCheck(this, IfcWindowStyleOperationEnum);

    this.value = v;
  });

  _exports.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;
  IfcWindowStyleOperationEnum.SINGLE_PANEL = "SINGLE_PANEL";
  IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = "DOUBLE_PANEL_VERTICAL";
  IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = "DOUBLE_PANEL_HORIZONTAL";
  IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = "TRIPLE_PANEL_VERTICAL";
  IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = "TRIPLE_PANEL_BOTTOM";
  IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = "TRIPLE_PANEL_TOP";
  IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = "TRIPLE_PANEL_LEFT";
  IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = "TRIPLE_PANEL_RIGHT";
  IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = "TRIPLE_PANEL_HORIZONTAL";
  IfcWindowStyleOperationEnum.USERDEFINED = "USERDEFINED";
  IfcWindowStyleOperationEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWindowTypeEnum = /*#__PURE__*/_createClass(function IfcWindowTypeEnum(v) {
    _classCallCheck(this, IfcWindowTypeEnum);

    this.value = v;
  });

  _exports.IfcWindowTypeEnum = IfcWindowTypeEnum;
  IfcWindowTypeEnum.WINDOW = "WINDOW";
  IfcWindowTypeEnum.SKYLIGHT = "SKYLIGHT";
  IfcWindowTypeEnum.LIGHTDOME = "LIGHTDOME";
  IfcWindowTypeEnum.USERDEFINED = "USERDEFINED";
  IfcWindowTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWindowTypePartitioningEnum = /*#__PURE__*/_createClass(function IfcWindowTypePartitioningEnum(v) {
    _classCallCheck(this, IfcWindowTypePartitioningEnum);

    this.value = v;
  });

  _exports.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;
  IfcWindowTypePartitioningEnum.SINGLE_PANEL = "SINGLE_PANEL";
  IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = "DOUBLE_PANEL_VERTICAL";
  IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = "DOUBLE_PANEL_HORIZONTAL";
  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = "TRIPLE_PANEL_VERTICAL";
  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = "TRIPLE_PANEL_BOTTOM";
  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = "TRIPLE_PANEL_TOP";
  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = "TRIPLE_PANEL_LEFT";
  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = "TRIPLE_PANEL_RIGHT";
  IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = "TRIPLE_PANEL_HORIZONTAL";
  IfcWindowTypePartitioningEnum.USERDEFINED = "USERDEFINED";
  IfcWindowTypePartitioningEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWorkCalendarTypeEnum = /*#__PURE__*/_createClass(function IfcWorkCalendarTypeEnum(v) {
    _classCallCheck(this, IfcWorkCalendarTypeEnum);

    this.value = v;
  });

  _exports.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;
  IfcWorkCalendarTypeEnum.FIRSTSHIFT = "FIRSTSHIFT";
  IfcWorkCalendarTypeEnum.SECONDSHIFT = "SECONDSHIFT";
  IfcWorkCalendarTypeEnum.THIRDSHIFT = "THIRDSHIFT";
  IfcWorkCalendarTypeEnum.USERDEFINED = "USERDEFINED";
  IfcWorkCalendarTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWorkPlanTypeEnum = /*#__PURE__*/_createClass(function IfcWorkPlanTypeEnum(v) {
    _classCallCheck(this, IfcWorkPlanTypeEnum);

    this.value = v;
  });

  _exports.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;
  IfcWorkPlanTypeEnum.ACTUAL = "ACTUAL";
  IfcWorkPlanTypeEnum.BASELINE = "BASELINE";
  IfcWorkPlanTypeEnum.PLANNED = "PLANNED";
  IfcWorkPlanTypeEnum.USERDEFINED = "USERDEFINED";
  IfcWorkPlanTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcWorkScheduleTypeEnum = /*#__PURE__*/_createClass(function IfcWorkScheduleTypeEnum(v) {
    _classCallCheck(this, IfcWorkScheduleTypeEnum);

    this.value = v;
  });

  _exports.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;
  IfcWorkScheduleTypeEnum.ACTUAL = "ACTUAL";
  IfcWorkScheduleTypeEnum.BASELINE = "BASELINE";
  IfcWorkScheduleTypeEnum.PLANNED = "PLANNED";
  IfcWorkScheduleTypeEnum.USERDEFINED = "USERDEFINED";
  IfcWorkScheduleTypeEnum.NOTDEFINED = "NOTDEFINED";

  var IfcActionRequest = /*#__PURE__*/function () {
    function IfcActionRequest(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
      _classCallCheck(this, IfcActionRequest);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcActionRequest, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Status);
        ;
        args.push(this.LongDescription);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Status = tape[ptr++];
        var LongDescription = tape[ptr++];
        return new IfcActionRequest(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription);
      }
    }]);

    return IfcActionRequest;
  }();

  _exports.IfcActionRequest = IfcActionRequest;

  var IfcActor = /*#__PURE__*/function () {
    function IfcActor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {
      _classCallCheck(this, IfcActor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.TheActor = TheActor;
    }

    _createClass(IfcActor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.TheActor);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var TheActor = tape[ptr++];
        return new IfcActor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);
      }
    }]);

    return IfcActor;
  }();

  _exports.IfcActor = IfcActor;

  var IfcActorRole = /*#__PURE__*/function () {
    function IfcActorRole(expressID, type, Role, UserDefinedRole, Description) {
      _classCallCheck(this, IfcActorRole);

      this.expressID = expressID;
      this.type = type;
      this.Role = Role;
      this.UserDefinedRole = UserDefinedRole;
      this.Description = Description;
    }

    _createClass(IfcActorRole, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Role);
        ;
        args.push(this.UserDefinedRole);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Role = tape[ptr++];
        var UserDefinedRole = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcActorRole(expressID, type, Role, UserDefinedRole, Description);
      }
    }]);

    return IfcActorRole;
  }();

  _exports.IfcActorRole = IfcActorRole;

  var IfcActuator = /*#__PURE__*/function () {
    function IfcActuator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcActuator);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcActuator, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcActuator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcActuator;
  }();

  _exports.IfcActuator = IfcActuator;

  var IfcActuatorType = /*#__PURE__*/function () {
    function IfcActuatorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcActuatorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcActuatorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcActuatorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcActuatorType;
  }();

  _exports.IfcActuatorType = IfcActuatorType;

  var IfcAddress = /*#__PURE__*/function () {
    function IfcAddress(expressID, type, Purpose, Description, UserDefinedPurpose) {
      _classCallCheck(this, IfcAddress);

      this.expressID = expressID;
      this.type = type;
      this.Purpose = Purpose;
      this.Description = Description;
      this.UserDefinedPurpose = UserDefinedPurpose;
    }

    _createClass(IfcAddress, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Purpose);
        ;
        args.push(this.Description);
        ;
        args.push(this.UserDefinedPurpose);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Purpose = tape[ptr++];
        var Description = tape[ptr++];
        var UserDefinedPurpose = tape[ptr++];
        return new IfcAddress(expressID, type, Purpose, Description, UserDefinedPurpose);
      }
    }]);

    return IfcAddress;
  }();

  _exports.IfcAddress = IfcAddress;

  var IfcAdvancedBrep = /*#__PURE__*/function () {
    function IfcAdvancedBrep(expressID, type, Outer) {
      _classCallCheck(this, IfcAdvancedBrep);

      this.expressID = expressID;
      this.type = type;
      this.Outer = Outer;
    }

    _createClass(IfcAdvancedBrep, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Outer);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Outer = tape[ptr++];
        return new IfcAdvancedBrep(expressID, type, Outer);
      }
    }]);

    return IfcAdvancedBrep;
  }();

  _exports.IfcAdvancedBrep = IfcAdvancedBrep;

  var IfcAdvancedBrepWithVoids = /*#__PURE__*/function () {
    function IfcAdvancedBrepWithVoids(expressID, type, Outer, Voids) {
      _classCallCheck(this, IfcAdvancedBrepWithVoids);

      this.expressID = expressID;
      this.type = type;
      this.Outer = Outer;
      this.Voids = Voids;
    }

    _createClass(IfcAdvancedBrepWithVoids, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Outer);
        ;
        args.push(this.Voids);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Outer = tape[ptr++];
        var Voids = tape[ptr++];
        return new IfcAdvancedBrepWithVoids(expressID, type, Outer, Voids);
      }
    }]);

    return IfcAdvancedBrepWithVoids;
  }();

  _exports.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;

  var IfcAdvancedFace = /*#__PURE__*/function () {
    function IfcAdvancedFace(expressID, type, Bounds, FaceSurface, SameSense) {
      _classCallCheck(this, IfcAdvancedFace);

      this.expressID = expressID;
      this.type = type;
      this.Bounds = Bounds;
      this.FaceSurface = FaceSurface;
      this.SameSense = SameSense;
    }

    _createClass(IfcAdvancedFace, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Bounds);
        ;
        args.push(this.FaceSurface);
        ;
        args.push(this.SameSense);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Bounds = tape[ptr++];
        var FaceSurface = tape[ptr++];
        var SameSense = tape[ptr++];
        return new IfcAdvancedFace(expressID, type, Bounds, FaceSurface, SameSense);
      }
    }]);

    return IfcAdvancedFace;
  }();

  _exports.IfcAdvancedFace = IfcAdvancedFace;

  var IfcAirTerminal = /*#__PURE__*/function () {
    function IfcAirTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcAirTerminal);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAirTerminal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAirTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcAirTerminal;
  }();

  _exports.IfcAirTerminal = IfcAirTerminal;

  var IfcAirTerminalBox = /*#__PURE__*/function () {
    function IfcAirTerminalBox(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcAirTerminalBox);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAirTerminalBox, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAirTerminalBox(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcAirTerminalBox;
  }();

  _exports.IfcAirTerminalBox = IfcAirTerminalBox;

  var IfcAirTerminalBoxType = /*#__PURE__*/function () {
    function IfcAirTerminalBoxType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcAirTerminalBoxType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAirTerminalBoxType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAirTerminalBoxType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcAirTerminalBoxType;
  }();

  _exports.IfcAirTerminalBoxType = IfcAirTerminalBoxType;

  var IfcAirTerminalType = /*#__PURE__*/function () {
    function IfcAirTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcAirTerminalType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAirTerminalType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAirTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcAirTerminalType;
  }();

  _exports.IfcAirTerminalType = IfcAirTerminalType;

  var IfcAirToAirHeatRecovery = /*#__PURE__*/function () {
    function IfcAirToAirHeatRecovery(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcAirToAirHeatRecovery);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAirToAirHeatRecovery, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAirToAirHeatRecovery(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcAirToAirHeatRecovery;
  }();

  _exports.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;

  var IfcAirToAirHeatRecoveryType = /*#__PURE__*/function () {
    function IfcAirToAirHeatRecoveryType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcAirToAirHeatRecoveryType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAirToAirHeatRecoveryType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAirToAirHeatRecoveryType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcAirToAirHeatRecoveryType;
  }();

  _exports.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;

  var IfcAlarm = /*#__PURE__*/function () {
    function IfcAlarm(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcAlarm);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAlarm, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAlarm(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcAlarm;
  }();

  _exports.IfcAlarm = IfcAlarm;

  var IfcAlarmType = /*#__PURE__*/function () {
    function IfcAlarmType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcAlarmType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAlarmType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAlarmType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcAlarmType;
  }();

  _exports.IfcAlarmType = IfcAlarmType;

  var IfcAlignment = /*#__PURE__*/function () {
    function IfcAlignment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Axis, PredefinedType) {
      _classCallCheck(this, IfcAlignment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Axis = Axis;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAlignment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Axis);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Axis = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAlignment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Axis, PredefinedType);
      }
    }]);

    return IfcAlignment;
  }();

  _exports.IfcAlignment = IfcAlignment;

  var IfcAlignment2DHorizontal = /*#__PURE__*/function () {
    function IfcAlignment2DHorizontal(expressID, type, StartDistAlong, Segments) {
      _classCallCheck(this, IfcAlignment2DHorizontal);

      this.expressID = expressID;
      this.type = type;
      this.StartDistAlong = StartDistAlong;
      this.Segments = Segments;
    }

    _createClass(IfcAlignment2DHorizontal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.StartDistAlong);
        ;
        args.push(this.Segments);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var StartDistAlong = tape[ptr++];
        var Segments = tape[ptr++];
        return new IfcAlignment2DHorizontal(expressID, type, StartDistAlong, Segments);
      }
    }]);

    return IfcAlignment2DHorizontal;
  }();

  _exports.IfcAlignment2DHorizontal = IfcAlignment2DHorizontal;

  var IfcAlignment2DHorizontalSegment = /*#__PURE__*/function () {
    function IfcAlignment2DHorizontalSegment(expressID, type, TangentialContinuity, StartTag, EndTag, CurveGeometry) {
      _classCallCheck(this, IfcAlignment2DHorizontalSegment);

      this.expressID = expressID;
      this.type = type;
      this.TangentialContinuity = TangentialContinuity;
      this.StartTag = StartTag;
      this.EndTag = EndTag;
      this.CurveGeometry = CurveGeometry;
    }

    _createClass(IfcAlignment2DHorizontalSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TangentialContinuity);
        ;
        args.push(this.StartTag);
        ;
        args.push(this.EndTag);
        ;
        args.push(this.CurveGeometry);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TangentialContinuity = tape[ptr++];
        var StartTag = tape[ptr++];
        var EndTag = tape[ptr++];
        var CurveGeometry = tape[ptr++];
        return new IfcAlignment2DHorizontalSegment(expressID, type, TangentialContinuity, StartTag, EndTag, CurveGeometry);
      }
    }]);

    return IfcAlignment2DHorizontalSegment;
  }();

  _exports.IfcAlignment2DHorizontalSegment = IfcAlignment2DHorizontalSegment;

  var IfcAlignment2DSegment = /*#__PURE__*/function () {
    function IfcAlignment2DSegment(expressID, type, TangentialContinuity, StartTag, EndTag) {
      _classCallCheck(this, IfcAlignment2DSegment);

      this.expressID = expressID;
      this.type = type;
      this.TangentialContinuity = TangentialContinuity;
      this.StartTag = StartTag;
      this.EndTag = EndTag;
    }

    _createClass(IfcAlignment2DSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TangentialContinuity);
        ;
        args.push(this.StartTag);
        ;
        args.push(this.EndTag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TangentialContinuity = tape[ptr++];
        var StartTag = tape[ptr++];
        var EndTag = tape[ptr++];
        return new IfcAlignment2DSegment(expressID, type, TangentialContinuity, StartTag, EndTag);
      }
    }]);

    return IfcAlignment2DSegment;
  }();

  _exports.IfcAlignment2DSegment = IfcAlignment2DSegment;

  var IfcAlignment2DVerSegCircularArc = /*#__PURE__*/function () {
    function IfcAlignment2DVerSegCircularArc(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, Radius, IsConvex) {
      _classCallCheck(this, IfcAlignment2DVerSegCircularArc);

      this.expressID = expressID;
      this.type = type;
      this.TangentialContinuity = TangentialContinuity;
      this.StartTag = StartTag;
      this.EndTag = EndTag;
      this.StartDistAlong = StartDistAlong;
      this.HorizontalLength = HorizontalLength;
      this.StartHeight = StartHeight;
      this.StartGradient = StartGradient;
      this.Radius = Radius;
      this.IsConvex = IsConvex;
    }

    _createClass(IfcAlignment2DVerSegCircularArc, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TangentialContinuity);
        ;
        args.push(this.StartTag);
        ;
        args.push(this.EndTag);
        ;
        args.push(this.StartDistAlong);
        ;
        args.push(this.HorizontalLength);
        ;
        args.push(this.StartHeight);
        ;
        args.push(this.StartGradient);
        ;
        args.push(this.Radius);
        ;
        args.push(this.IsConvex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TangentialContinuity = tape[ptr++];
        var StartTag = tape[ptr++];
        var EndTag = tape[ptr++];
        var StartDistAlong = tape[ptr++];
        var HorizontalLength = tape[ptr++];
        var StartHeight = tape[ptr++];
        var StartGradient = tape[ptr++];
        var Radius = tape[ptr++];
        var IsConvex = tape[ptr++];
        return new IfcAlignment2DVerSegCircularArc(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, Radius, IsConvex);
      }
    }]);

    return IfcAlignment2DVerSegCircularArc;
  }();

  _exports.IfcAlignment2DVerSegCircularArc = IfcAlignment2DVerSegCircularArc;

  var IfcAlignment2DVerSegLine = /*#__PURE__*/function () {
    function IfcAlignment2DVerSegLine(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient) {
      _classCallCheck(this, IfcAlignment2DVerSegLine);

      this.expressID = expressID;
      this.type = type;
      this.TangentialContinuity = TangentialContinuity;
      this.StartTag = StartTag;
      this.EndTag = EndTag;
      this.StartDistAlong = StartDistAlong;
      this.HorizontalLength = HorizontalLength;
      this.StartHeight = StartHeight;
      this.StartGradient = StartGradient;
    }

    _createClass(IfcAlignment2DVerSegLine, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TangentialContinuity);
        ;
        args.push(this.StartTag);
        ;
        args.push(this.EndTag);
        ;
        args.push(this.StartDistAlong);
        ;
        args.push(this.HorizontalLength);
        ;
        args.push(this.StartHeight);
        ;
        args.push(this.StartGradient);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TangentialContinuity = tape[ptr++];
        var StartTag = tape[ptr++];
        var EndTag = tape[ptr++];
        var StartDistAlong = tape[ptr++];
        var HorizontalLength = tape[ptr++];
        var StartHeight = tape[ptr++];
        var StartGradient = tape[ptr++];
        return new IfcAlignment2DVerSegLine(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient);
      }
    }]);

    return IfcAlignment2DVerSegLine;
  }();

  _exports.IfcAlignment2DVerSegLine = IfcAlignment2DVerSegLine;

  var IfcAlignment2DVerSegParabolicArc = /*#__PURE__*/function () {
    function IfcAlignment2DVerSegParabolicArc(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, ParabolaConstant, IsConvex) {
      _classCallCheck(this, IfcAlignment2DVerSegParabolicArc);

      this.expressID = expressID;
      this.type = type;
      this.TangentialContinuity = TangentialContinuity;
      this.StartTag = StartTag;
      this.EndTag = EndTag;
      this.StartDistAlong = StartDistAlong;
      this.HorizontalLength = HorizontalLength;
      this.StartHeight = StartHeight;
      this.StartGradient = StartGradient;
      this.ParabolaConstant = ParabolaConstant;
      this.IsConvex = IsConvex;
    }

    _createClass(IfcAlignment2DVerSegParabolicArc, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TangentialContinuity);
        ;
        args.push(this.StartTag);
        ;
        args.push(this.EndTag);
        ;
        args.push(this.StartDistAlong);
        ;
        args.push(this.HorizontalLength);
        ;
        args.push(this.StartHeight);
        ;
        args.push(this.StartGradient);
        ;
        args.push(this.ParabolaConstant);
        ;
        args.push(this.IsConvex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TangentialContinuity = tape[ptr++];
        var StartTag = tape[ptr++];
        var EndTag = tape[ptr++];
        var StartDistAlong = tape[ptr++];
        var HorizontalLength = tape[ptr++];
        var StartHeight = tape[ptr++];
        var StartGradient = tape[ptr++];
        var ParabolaConstant = tape[ptr++];
        var IsConvex = tape[ptr++];
        return new IfcAlignment2DVerSegParabolicArc(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, ParabolaConstant, IsConvex);
      }
    }]);

    return IfcAlignment2DVerSegParabolicArc;
  }();

  _exports.IfcAlignment2DVerSegParabolicArc = IfcAlignment2DVerSegParabolicArc;

  var IfcAlignment2DVertical = /*#__PURE__*/function () {
    function IfcAlignment2DVertical(expressID, type, Segments) {
      _classCallCheck(this, IfcAlignment2DVertical);

      this.expressID = expressID;
      this.type = type;
      this.Segments = Segments;
    }

    _createClass(IfcAlignment2DVertical, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Segments);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Segments = tape[ptr++];
        return new IfcAlignment2DVertical(expressID, type, Segments);
      }
    }]);

    return IfcAlignment2DVertical;
  }();

  _exports.IfcAlignment2DVertical = IfcAlignment2DVertical;

  var IfcAlignment2DVerticalSegment = /*#__PURE__*/function () {
    function IfcAlignment2DVerticalSegment(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient) {
      _classCallCheck(this, IfcAlignment2DVerticalSegment);

      this.expressID = expressID;
      this.type = type;
      this.TangentialContinuity = TangentialContinuity;
      this.StartTag = StartTag;
      this.EndTag = EndTag;
      this.StartDistAlong = StartDistAlong;
      this.HorizontalLength = HorizontalLength;
      this.StartHeight = StartHeight;
      this.StartGradient = StartGradient;
    }

    _createClass(IfcAlignment2DVerticalSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TangentialContinuity);
        ;
        args.push(this.StartTag);
        ;
        args.push(this.EndTag);
        ;
        args.push(this.StartDistAlong);
        ;
        args.push(this.HorizontalLength);
        ;
        args.push(this.StartHeight);
        ;
        args.push(this.StartGradient);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TangentialContinuity = tape[ptr++];
        var StartTag = tape[ptr++];
        var EndTag = tape[ptr++];
        var StartDistAlong = tape[ptr++];
        var HorizontalLength = tape[ptr++];
        var StartHeight = tape[ptr++];
        var StartGradient = tape[ptr++];
        return new IfcAlignment2DVerticalSegment(expressID, type, TangentialContinuity, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient);
      }
    }]);

    return IfcAlignment2DVerticalSegment;
  }();

  _exports.IfcAlignment2DVerticalSegment = IfcAlignment2DVerticalSegment;

  var IfcAlignmentCurve = /*#__PURE__*/function () {
    function IfcAlignmentCurve(expressID, type, Horizontal, Vertical, Tag) {
      _classCallCheck(this, IfcAlignmentCurve);

      this.expressID = expressID;
      this.type = type;
      this.Horizontal = Horizontal;
      this.Vertical = Vertical;
      this.Tag = Tag;
    }

    _createClass(IfcAlignmentCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Horizontal);
        ;
        args.push(this.Vertical);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Horizontal = tape[ptr++];
        var Vertical = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcAlignmentCurve(expressID, type, Horizontal, Vertical, Tag);
      }
    }]);

    return IfcAlignmentCurve;
  }();

  _exports.IfcAlignmentCurve = IfcAlignmentCurve;

  var IfcAnnotation = /*#__PURE__*/function () {
    function IfcAnnotation(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
      _classCallCheck(this, IfcAnnotation);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
    }

    _createClass(IfcAnnotation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        return new IfcAnnotation(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
      }
    }]);

    return IfcAnnotation;
  }();

  _exports.IfcAnnotation = IfcAnnotation;

  var IfcAnnotationFillArea = /*#__PURE__*/function () {
    function IfcAnnotationFillArea(expressID, type, OuterBoundary, InnerBoundaries) {
      _classCallCheck(this, IfcAnnotationFillArea);

      this.expressID = expressID;
      this.type = type;
      this.OuterBoundary = OuterBoundary;
      this.InnerBoundaries = InnerBoundaries;
    }

    _createClass(IfcAnnotationFillArea, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.OuterBoundary);
        ;
        args.push(this.InnerBoundaries);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var OuterBoundary = tape[ptr++];
        var InnerBoundaries = tape[ptr++];
        return new IfcAnnotationFillArea(expressID, type, OuterBoundary, InnerBoundaries);
      }
    }]);

    return IfcAnnotationFillArea;
  }();

  _exports.IfcAnnotationFillArea = IfcAnnotationFillArea;

  var IfcApplication = /*#__PURE__*/function () {
    function IfcApplication(expressID, type, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {
      _classCallCheck(this, IfcApplication);

      this.expressID = expressID;
      this.type = type;
      this.ApplicationDeveloper = ApplicationDeveloper;
      this.Version = Version;
      this.ApplicationFullName = ApplicationFullName;
      this.ApplicationIdentifier = ApplicationIdentifier;
    }

    _createClass(IfcApplication, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ApplicationDeveloper);
        ;
        args.push(this.Version);
        ;
        args.push(this.ApplicationFullName);
        ;
        args.push(this.ApplicationIdentifier);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ApplicationDeveloper = tape[ptr++];
        var Version = tape[ptr++];
        var ApplicationFullName = tape[ptr++];
        var ApplicationIdentifier = tape[ptr++];
        return new IfcApplication(expressID, type, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier);
      }
    }]);

    return IfcApplication;
  }();

  _exports.IfcApplication = IfcApplication;

  var IfcAppliedValue = /*#__PURE__*/function () {
    function IfcAppliedValue(expressID, type, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {
      _classCallCheck(this, IfcAppliedValue);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcAppliedValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.AppliedValue);
        ;
        args.push(this.UnitBasis);
        ;
        args.push(this.ApplicableDate);
        ;
        args.push(this.FixedUntilDate);
        ;
        args.push(this.Category);
        ;
        args.push(this.Condition);
        ;
        args.push(this.ArithmeticOperator);
        ;
        args.push(this.Components);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var AppliedValue = tape[ptr++];
        var UnitBasis = tape[ptr++];
        var ApplicableDate = tape[ptr++];
        var FixedUntilDate = tape[ptr++];
        var Category = tape[ptr++];
        var Condition = tape[ptr++];
        var ArithmeticOperator = tape[ptr++];
        var Components = tape[ptr++];
        return new IfcAppliedValue(expressID, type, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);
      }
    }]);

    return IfcAppliedValue;
  }();

  _exports.IfcAppliedValue = IfcAppliedValue;

  var IfcApproval = /*#__PURE__*/function () {
    function IfcApproval(expressID, type, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {
      _classCallCheck(this, IfcApproval);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcApproval, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Identifier);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.TimeOfApproval);
        ;
        args.push(this.Status);
        ;
        args.push(this.Level);
        ;
        args.push(this.Qualifier);
        ;
        args.push(this.RequestingApproval);
        ;
        args.push(this.GivingApproval);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Identifier = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var TimeOfApproval = tape[ptr++];
        var Status = tape[ptr++];
        var Level = tape[ptr++];
        var Qualifier = tape[ptr++];
        var RequestingApproval = tape[ptr++];
        var GivingApproval = tape[ptr++];
        return new IfcApproval(expressID, type, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval);
      }
    }]);

    return IfcApproval;
  }();

  _exports.IfcApproval = IfcApproval;

  var IfcApprovalRelationship = /*#__PURE__*/function () {
    function IfcApprovalRelationship(expressID, type, Name, Description, RelatingApproval, RelatedApprovals) {
      _classCallCheck(this, IfcApprovalRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingApproval = RelatingApproval;
      this.RelatedApprovals = RelatedApprovals;
    }

    _createClass(IfcApprovalRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingApproval);
        ;
        args.push(this.RelatedApprovals);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingApproval = tape[ptr++];
        var RelatedApprovals = tape[ptr++];
        return new IfcApprovalRelationship(expressID, type, Name, Description, RelatingApproval, RelatedApprovals);
      }
    }]);

    return IfcApprovalRelationship;
  }();

  _exports.IfcApprovalRelationship = IfcApprovalRelationship;

  var IfcArbitraryClosedProfileDef = /*#__PURE__*/function () {
    function IfcArbitraryClosedProfileDef(expressID, type, ProfileType, ProfileName, OuterCurve) {
      _classCallCheck(this, IfcArbitraryClosedProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.OuterCurve = OuterCurve;
    }

    _createClass(IfcArbitraryClosedProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.OuterCurve);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var OuterCurve = tape[ptr++];
        return new IfcArbitraryClosedProfileDef(expressID, type, ProfileType, ProfileName, OuterCurve);
      }
    }]);

    return IfcArbitraryClosedProfileDef;
  }();

  _exports.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;

  var IfcArbitraryOpenProfileDef = /*#__PURE__*/function () {
    function IfcArbitraryOpenProfileDef(expressID, type, ProfileType, ProfileName, Curve) {
      _classCallCheck(this, IfcArbitraryOpenProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Curve = Curve;
    }

    _createClass(IfcArbitraryOpenProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Curve);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Curve = tape[ptr++];
        return new IfcArbitraryOpenProfileDef(expressID, type, ProfileType, ProfileName, Curve);
      }
    }]);

    return IfcArbitraryOpenProfileDef;
  }();

  _exports.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;

  var IfcArbitraryProfileDefWithVoids = /*#__PURE__*/function () {
    function IfcArbitraryProfileDefWithVoids(expressID, type, ProfileType, ProfileName, OuterCurve, InnerCurves) {
      _classCallCheck(this, IfcArbitraryProfileDefWithVoids);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.OuterCurve = OuterCurve;
      this.InnerCurves = InnerCurves;
    }

    _createClass(IfcArbitraryProfileDefWithVoids, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.OuterCurve);
        ;
        args.push(this.InnerCurves);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var OuterCurve = tape[ptr++];
        var InnerCurves = tape[ptr++];
        return new IfcArbitraryProfileDefWithVoids(expressID, type, ProfileType, ProfileName, OuterCurve, InnerCurves);
      }
    }]);

    return IfcArbitraryProfileDefWithVoids;
  }();

  _exports.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;

  var IfcAsset = /*#__PURE__*/function () {
    function IfcAsset(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {
      _classCallCheck(this, IfcAsset);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcAsset, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.OriginalValue);
        ;
        args.push(this.CurrentValue);
        ;
        args.push(this.TotalReplacementCost);
        ;
        args.push(this.Owner);
        ;
        args.push(this.User);
        ;
        args.push(this.ResponsiblePerson);
        ;
        args.push(this.IncorporationDate);
        ;
        args.push(this.DepreciatedValue);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var OriginalValue = tape[ptr++];
        var CurrentValue = tape[ptr++];
        var TotalReplacementCost = tape[ptr++];
        var Owner = tape[ptr++];
        var User = tape[ptr++];
        var ResponsiblePerson = tape[ptr++];
        var IncorporationDate = tape[ptr++];
        var DepreciatedValue = tape[ptr++];
        return new IfcAsset(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue);
      }
    }]);

    return IfcAsset;
  }();

  _exports.IfcAsset = IfcAsset;

  var IfcAsymmetricIShapeProfileDef = /*#__PURE__*/function () {
    function IfcAsymmetricIShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {
      _classCallCheck(this, IfcAsymmetricIShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcAsymmetricIShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.BottomFlangeWidth);
        ;
        args.push(this.OverallDepth);
        ;
        args.push(this.WebThickness);
        ;
        args.push(this.BottomFlangeThickness);
        ;
        args.push(this.BottomFlangeFilletRadius);
        ;
        args.push(this.TopFlangeWidth);
        ;
        args.push(this.TopFlangeThickness);
        ;
        args.push(this.TopFlangeFilletRadius);
        ;
        args.push(this.BottomFlangeEdgeRadius);
        ;
        args.push(this.BottomFlangeSlope);
        ;
        args.push(this.TopFlangeEdgeRadius);
        ;
        args.push(this.TopFlangeSlope);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var BottomFlangeWidth = tape[ptr++];
        var OverallDepth = tape[ptr++];
        var WebThickness = tape[ptr++];
        var BottomFlangeThickness = tape[ptr++];
        var BottomFlangeFilletRadius = tape[ptr++];
        var TopFlangeWidth = tape[ptr++];
        var TopFlangeThickness = tape[ptr++];
        var TopFlangeFilletRadius = tape[ptr++];
        var BottomFlangeEdgeRadius = tape[ptr++];
        var BottomFlangeSlope = tape[ptr++];
        var TopFlangeEdgeRadius = tape[ptr++];
        var TopFlangeSlope = tape[ptr++];
        return new IfcAsymmetricIShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope);
      }
    }]);

    return IfcAsymmetricIShapeProfileDef;
  }();

  _exports.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;

  var IfcAudioVisualAppliance = /*#__PURE__*/function () {
    function IfcAudioVisualAppliance(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcAudioVisualAppliance);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAudioVisualAppliance, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAudioVisualAppliance(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcAudioVisualAppliance;
  }();

  _exports.IfcAudioVisualAppliance = IfcAudioVisualAppliance;

  var IfcAudioVisualApplianceType = /*#__PURE__*/function () {
    function IfcAudioVisualApplianceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcAudioVisualApplianceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcAudioVisualApplianceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcAudioVisualApplianceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcAudioVisualApplianceType;
  }();

  _exports.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;

  var IfcAxis1Placement = /*#__PURE__*/function () {
    function IfcAxis1Placement(expressID, type, Location, Axis) {
      _classCallCheck(this, IfcAxis1Placement);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Axis = Axis;
    }

    _createClass(IfcAxis1Placement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Axis);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Axis = tape[ptr++];
        return new IfcAxis1Placement(expressID, type, Location, Axis);
      }
    }]);

    return IfcAxis1Placement;
  }();

  _exports.IfcAxis1Placement = IfcAxis1Placement;

  var IfcAxis2Placement2D = /*#__PURE__*/function () {
    function IfcAxis2Placement2D(expressID, type, Location, RefDirection) {
      _classCallCheck(this, IfcAxis2Placement2D);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.RefDirection = RefDirection;
    }

    _createClass(IfcAxis2Placement2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.RefDirection);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var RefDirection = tape[ptr++];
        return new IfcAxis2Placement2D(expressID, type, Location, RefDirection);
      }
    }]);

    return IfcAxis2Placement2D;
  }();

  _exports.IfcAxis2Placement2D = IfcAxis2Placement2D;

  var IfcAxis2Placement3D = /*#__PURE__*/function () {
    function IfcAxis2Placement3D(expressID, type, Location, Axis, RefDirection) {
      _classCallCheck(this, IfcAxis2Placement3D);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Axis = Axis;
      this.RefDirection = RefDirection;
    }

    _createClass(IfcAxis2Placement3D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Axis);
        ;
        args.push(this.RefDirection);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Axis = tape[ptr++];
        var RefDirection = tape[ptr++];
        return new IfcAxis2Placement3D(expressID, type, Location, Axis, RefDirection);
      }
    }]);

    return IfcAxis2Placement3D;
  }();

  _exports.IfcAxis2Placement3D = IfcAxis2Placement3D;

  var IfcBSplineCurve = /*#__PURE__*/function () {
    function IfcBSplineCurve(expressID, type, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {
      _classCallCheck(this, IfcBSplineCurve);

      this.expressID = expressID;
      this.type = type;
      this.Degree = Degree;
      this.ControlPointsList = ControlPointsList;
      this.CurveForm = CurveForm;
      this.ClosedCurve = ClosedCurve;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcBSplineCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Degree);
        ;
        args.push(this.ControlPointsList);
        ;
        args.push(this.CurveForm);
        ;
        args.push(this.ClosedCurve);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Degree = tape[ptr++];
        var ControlPointsList = tape[ptr++];
        var CurveForm = tape[ptr++];
        var ClosedCurve = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcBSplineCurve(expressID, type, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);
      }
    }]);

    return IfcBSplineCurve;
  }();

  _exports.IfcBSplineCurve = IfcBSplineCurve;

  var IfcBSplineCurveWithKnots = /*#__PURE__*/function () {
    function IfcBSplineCurveWithKnots(expressID, type, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {
      _classCallCheck(this, IfcBSplineCurveWithKnots);

      this.expressID = expressID;
      this.type = type;
      this.Degree = Degree;
      this.ControlPointsList = ControlPointsList;
      this.CurveForm = CurveForm;
      this.ClosedCurve = ClosedCurve;
      this.SelfIntersect = SelfIntersect;
      this.KnotMultiplicities = KnotMultiplicities;
      this.Knots = Knots;
      this.KnotSpec = KnotSpec;
    }

    _createClass(IfcBSplineCurveWithKnots, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Degree);
        ;
        args.push(this.ControlPointsList);
        ;
        args.push(this.CurveForm);
        ;
        args.push(this.ClosedCurve);
        ;
        args.push(this.SelfIntersect);
        ;
        args.push(this.KnotMultiplicities);
        ;
        args.push(this.Knots);
        ;
        args.push(this.KnotSpec);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Degree = tape[ptr++];
        var ControlPointsList = tape[ptr++];
        var CurveForm = tape[ptr++];
        var ClosedCurve = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        var KnotMultiplicities = tape[ptr++];
        var Knots = tape[ptr++];
        var KnotSpec = tape[ptr++];
        return new IfcBSplineCurveWithKnots(expressID, type, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);
      }
    }]);

    return IfcBSplineCurveWithKnots;
  }();

  _exports.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;

  var IfcBSplineSurface = /*#__PURE__*/function () {
    function IfcBSplineSurface(expressID, type, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {
      _classCallCheck(this, IfcBSplineSurface);

      this.expressID = expressID;
      this.type = type;
      this.UDegree = UDegree;
      this.VDegree = VDegree;
      this.ControlPointsList = ControlPointsList;
      this.SurfaceForm = SurfaceForm;
      this.UClosed = UClosed;
      this.VClosed = VClosed;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcBSplineSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.UDegree);
        ;
        args.push(this.VDegree);
        ;
        args.push(this.ControlPointsList);
        ;
        args.push(this.SurfaceForm);
        ;
        args.push(this.UClosed);
        ;
        args.push(this.VClosed);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var UDegree = tape[ptr++];
        var VDegree = tape[ptr++];
        var ControlPointsList = tape[ptr++];
        var SurfaceForm = tape[ptr++];
        var UClosed = tape[ptr++];
        var VClosed = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcBSplineSurface(expressID, type, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);
      }
    }]);

    return IfcBSplineSurface;
  }();

  _exports.IfcBSplineSurface = IfcBSplineSurface;

  var IfcBSplineSurfaceWithKnots = /*#__PURE__*/function () {
    function IfcBSplineSurfaceWithKnots(expressID, type, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {
      _classCallCheck(this, IfcBSplineSurfaceWithKnots);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcBSplineSurfaceWithKnots, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.UDegree);
        ;
        args.push(this.VDegree);
        ;
        args.push(this.ControlPointsList);
        ;
        args.push(this.SurfaceForm);
        ;
        args.push(this.UClosed);
        ;
        args.push(this.VClosed);
        ;
        args.push(this.SelfIntersect);
        ;
        args.push(this.UMultiplicities);
        ;
        args.push(this.VMultiplicities);
        ;
        args.push(this.UKnots);
        ;
        args.push(this.VKnots);
        ;
        args.push(this.KnotSpec);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var UDegree = tape[ptr++];
        var VDegree = tape[ptr++];
        var ControlPointsList = tape[ptr++];
        var SurfaceForm = tape[ptr++];
        var UClosed = tape[ptr++];
        var VClosed = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        var UMultiplicities = tape[ptr++];
        var VMultiplicities = tape[ptr++];
        var UKnots = tape[ptr++];
        var VKnots = tape[ptr++];
        var KnotSpec = tape[ptr++];
        return new IfcBSplineSurfaceWithKnots(expressID, type, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);
      }
    }]);

    return IfcBSplineSurfaceWithKnots;
  }();

  _exports.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;

  var IfcBeam = /*#__PURE__*/function () {
    function IfcBeam(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBeam);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBeam, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBeam(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBeam;
  }();

  _exports.IfcBeam = IfcBeam;

  var IfcBeamStandardCase = /*#__PURE__*/function () {
    function IfcBeamStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBeamStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBeamStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBeamStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBeamStandardCase;
  }();

  _exports.IfcBeamStandardCase = IfcBeamStandardCase;

  var IfcBeamType = /*#__PURE__*/function () {
    function IfcBeamType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcBeamType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBeamType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBeamType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcBeamType;
  }();

  _exports.IfcBeamType = IfcBeamType;

  var IfcBearing = /*#__PURE__*/function () {
    function IfcBearing(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBearing);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBearing, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBearing(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBearing;
  }();

  _exports.IfcBearing = IfcBearing;

  var IfcBearingType = /*#__PURE__*/function () {
    function IfcBearingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcBearingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBearingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBearingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcBearingType;
  }();

  _exports.IfcBearingType = IfcBearingType;

  var IfcBlobTexture = /*#__PURE__*/function () {
    function IfcBlobTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {
      _classCallCheck(this, IfcBlobTexture);

      this.expressID = expressID;
      this.type = type;
      this.RepeatS = RepeatS;
      this.RepeatT = RepeatT;
      this.Mode = Mode;
      this.TextureTransform = TextureTransform;
      this.Parameter = Parameter;
      this.RasterFormat = RasterFormat;
      this.RasterCode = RasterCode;
    }

    _createClass(IfcBlobTexture, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RepeatS);
        ;
        args.push(this.RepeatT);
        ;
        args.push(this.Mode);
        ;
        args.push(this.TextureTransform);
        ;
        args.push(this.Parameter);
        ;
        args.push(this.RasterFormat);
        ;
        args.push(this.RasterCode);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RepeatS = tape[ptr++];
        var RepeatT = tape[ptr++];
        var Mode = tape[ptr++];
        var TextureTransform = tape[ptr++];
        var Parameter = tape[ptr++];
        var RasterFormat = tape[ptr++];
        var RasterCode = tape[ptr++];
        return new IfcBlobTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode);
      }
    }]);

    return IfcBlobTexture;
  }();

  _exports.IfcBlobTexture = IfcBlobTexture;

  var IfcBlock = /*#__PURE__*/function () {
    function IfcBlock(expressID, type, Position, XLength, YLength, ZLength) {
      _classCallCheck(this, IfcBlock);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.XLength = XLength;
      this.YLength = YLength;
      this.ZLength = ZLength;
    }

    _createClass(IfcBlock, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.XLength);
        ;
        args.push(this.YLength);
        ;
        args.push(this.ZLength);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var XLength = tape[ptr++];
        var YLength = tape[ptr++];
        var ZLength = tape[ptr++];
        return new IfcBlock(expressID, type, Position, XLength, YLength, ZLength);
      }
    }]);

    return IfcBlock;
  }();

  _exports.IfcBlock = IfcBlock;

  var IfcBoiler = /*#__PURE__*/function () {
    function IfcBoiler(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBoiler);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBoiler, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBoiler(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBoiler;
  }();

  _exports.IfcBoiler = IfcBoiler;

  var IfcBoilerType = /*#__PURE__*/function () {
    function IfcBoilerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcBoilerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBoilerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBoilerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcBoilerType;
  }();

  _exports.IfcBoilerType = IfcBoilerType;

  var IfcBooleanClippingResult = /*#__PURE__*/function () {
    function IfcBooleanClippingResult(expressID, type, Operator, FirstOperand, SecondOperand) {
      _classCallCheck(this, IfcBooleanClippingResult);

      this.expressID = expressID;
      this.type = type;
      this.Operator = Operator;
      this.FirstOperand = FirstOperand;
      this.SecondOperand = SecondOperand;
    }

    _createClass(IfcBooleanClippingResult, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Operator);
        ;
        args.push(this.FirstOperand);
        ;
        args.push(this.SecondOperand);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Operator = tape[ptr++];
        var FirstOperand = tape[ptr++];
        var SecondOperand = tape[ptr++];
        return new IfcBooleanClippingResult(expressID, type, Operator, FirstOperand, SecondOperand);
      }
    }]);

    return IfcBooleanClippingResult;
  }();

  _exports.IfcBooleanClippingResult = IfcBooleanClippingResult;

  var IfcBooleanResult = /*#__PURE__*/function () {
    function IfcBooleanResult(expressID, type, Operator, FirstOperand, SecondOperand) {
      _classCallCheck(this, IfcBooleanResult);

      this.expressID = expressID;
      this.type = type;
      this.Operator = Operator;
      this.FirstOperand = FirstOperand;
      this.SecondOperand = SecondOperand;
    }

    _createClass(IfcBooleanResult, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Operator);
        ;
        args.push(this.FirstOperand);
        ;
        args.push(this.SecondOperand);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Operator = tape[ptr++];
        var FirstOperand = tape[ptr++];
        var SecondOperand = tape[ptr++];
        return new IfcBooleanResult(expressID, type, Operator, FirstOperand, SecondOperand);
      }
    }]);

    return IfcBooleanResult;
  }();

  _exports.IfcBooleanResult = IfcBooleanResult;

  var IfcBoundaryCondition = /*#__PURE__*/function () {
    function IfcBoundaryCondition(expressID, type, Name) {
      _classCallCheck(this, IfcBoundaryCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcBoundaryCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcBoundaryCondition(expressID, type, Name);
      }
    }]);

    return IfcBoundaryCondition;
  }();

  _exports.IfcBoundaryCondition = IfcBoundaryCondition;

  var IfcBoundaryCurve = /*#__PURE__*/function () {
    function IfcBoundaryCurve(expressID, type, Segments, SelfIntersect) {
      _classCallCheck(this, IfcBoundaryCurve);

      this.expressID = expressID;
      this.type = type;
      this.Segments = Segments;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcBoundaryCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Segments);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Segments = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcBoundaryCurve(expressID, type, Segments, SelfIntersect);
      }
    }]);

    return IfcBoundaryCurve;
  }();

  _exports.IfcBoundaryCurve = IfcBoundaryCurve;

  var IfcBoundaryEdgeCondition = /*#__PURE__*/function () {
    function IfcBoundaryEdgeCondition(expressID, type, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {
      _classCallCheck(this, IfcBoundaryEdgeCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;
      this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;
      this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;
      this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;
      this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;
      this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;
    }

    _createClass(IfcBoundaryEdgeCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.TranslationalStiffnessByLengthX);
        ;
        args.push(this.TranslationalStiffnessByLengthY);
        ;
        args.push(this.TranslationalStiffnessByLengthZ);
        ;
        args.push(this.RotationalStiffnessByLengthX);
        ;
        args.push(this.RotationalStiffnessByLengthY);
        ;
        args.push(this.RotationalStiffnessByLengthZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var TranslationalStiffnessByLengthX = tape[ptr++];
        var TranslationalStiffnessByLengthY = tape[ptr++];
        var TranslationalStiffnessByLengthZ = tape[ptr++];
        var RotationalStiffnessByLengthX = tape[ptr++];
        var RotationalStiffnessByLengthY = tape[ptr++];
        var RotationalStiffnessByLengthZ = tape[ptr++];
        return new IfcBoundaryEdgeCondition(expressID, type, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ);
      }
    }]);

    return IfcBoundaryEdgeCondition;
  }();

  _exports.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;

  var IfcBoundaryFaceCondition = /*#__PURE__*/function () {
    function IfcBoundaryFaceCondition(expressID, type, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {
      _classCallCheck(this, IfcBoundaryFaceCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;
      this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;
      this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;
    }

    _createClass(IfcBoundaryFaceCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.TranslationalStiffnessByAreaX);
        ;
        args.push(this.TranslationalStiffnessByAreaY);
        ;
        args.push(this.TranslationalStiffnessByAreaZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var TranslationalStiffnessByAreaX = tape[ptr++];
        var TranslationalStiffnessByAreaY = tape[ptr++];
        var TranslationalStiffnessByAreaZ = tape[ptr++];
        return new IfcBoundaryFaceCondition(expressID, type, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ);
      }
    }]);

    return IfcBoundaryFaceCondition;
  }();

  _exports.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;

  var IfcBoundaryNodeCondition = /*#__PURE__*/function () {
    function IfcBoundaryNodeCondition(expressID, type, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {
      _classCallCheck(this, IfcBoundaryNodeCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.TranslationalStiffnessX = TranslationalStiffnessX;
      this.TranslationalStiffnessY = TranslationalStiffnessY;
      this.TranslationalStiffnessZ = TranslationalStiffnessZ;
      this.RotationalStiffnessX = RotationalStiffnessX;
      this.RotationalStiffnessY = RotationalStiffnessY;
      this.RotationalStiffnessZ = RotationalStiffnessZ;
    }

    _createClass(IfcBoundaryNodeCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.TranslationalStiffnessX);
        ;
        args.push(this.TranslationalStiffnessY);
        ;
        args.push(this.TranslationalStiffnessZ);
        ;
        args.push(this.RotationalStiffnessX);
        ;
        args.push(this.RotationalStiffnessY);
        ;
        args.push(this.RotationalStiffnessZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var TranslationalStiffnessX = tape[ptr++];
        var TranslationalStiffnessY = tape[ptr++];
        var TranslationalStiffnessZ = tape[ptr++];
        var RotationalStiffnessX = tape[ptr++];
        var RotationalStiffnessY = tape[ptr++];
        var RotationalStiffnessZ = tape[ptr++];
        return new IfcBoundaryNodeCondition(expressID, type, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);
      }
    }]);

    return IfcBoundaryNodeCondition;
  }();

  _exports.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;

  var IfcBoundaryNodeConditionWarping = /*#__PURE__*/function () {
    function IfcBoundaryNodeConditionWarping(expressID, type, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {
      _classCallCheck(this, IfcBoundaryNodeConditionWarping);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.TranslationalStiffnessX = TranslationalStiffnessX;
      this.TranslationalStiffnessY = TranslationalStiffnessY;
      this.TranslationalStiffnessZ = TranslationalStiffnessZ;
      this.RotationalStiffnessX = RotationalStiffnessX;
      this.RotationalStiffnessY = RotationalStiffnessY;
      this.RotationalStiffnessZ = RotationalStiffnessZ;
      this.WarpingStiffness = WarpingStiffness;
    }

    _createClass(IfcBoundaryNodeConditionWarping, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.TranslationalStiffnessX);
        ;
        args.push(this.TranslationalStiffnessY);
        ;
        args.push(this.TranslationalStiffnessZ);
        ;
        args.push(this.RotationalStiffnessX);
        ;
        args.push(this.RotationalStiffnessY);
        ;
        args.push(this.RotationalStiffnessZ);
        ;
        args.push(this.WarpingStiffness);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var TranslationalStiffnessX = tape[ptr++];
        var TranslationalStiffnessY = tape[ptr++];
        var TranslationalStiffnessZ = tape[ptr++];
        var RotationalStiffnessX = tape[ptr++];
        var RotationalStiffnessY = tape[ptr++];
        var RotationalStiffnessZ = tape[ptr++];
        var WarpingStiffness = tape[ptr++];
        return new IfcBoundaryNodeConditionWarping(expressID, type, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness);
      }
    }]);

    return IfcBoundaryNodeConditionWarping;
  }();

  _exports.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;

  var IfcBoundedCurve = /*#__PURE__*/function () {
    function IfcBoundedCurve(expressID, type) {
      _classCallCheck(this, IfcBoundedCurve);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcBoundedCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcBoundedCurve(expressID, type);
      }
    }]);

    return IfcBoundedCurve;
  }();

  _exports.IfcBoundedCurve = IfcBoundedCurve;

  var IfcBoundedSurface = /*#__PURE__*/function () {
    function IfcBoundedSurface(expressID, type) {
      _classCallCheck(this, IfcBoundedSurface);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcBoundedSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcBoundedSurface(expressID, type);
      }
    }]);

    return IfcBoundedSurface;
  }();

  _exports.IfcBoundedSurface = IfcBoundedSurface;

  var IfcBoundingBox = /*#__PURE__*/function () {
    function IfcBoundingBox(expressID, type, Corner, XDim, YDim, ZDim) {
      _classCallCheck(this, IfcBoundingBox);

      this.expressID = expressID;
      this.type = type;
      this.Corner = Corner;
      this.XDim = XDim;
      this.YDim = YDim;
      this.ZDim = ZDim;
    }

    _createClass(IfcBoundingBox, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Corner);
        ;
        args.push(this.XDim);
        ;
        args.push(this.YDim);
        ;
        args.push(this.ZDim);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Corner = tape[ptr++];
        var XDim = tape[ptr++];
        var YDim = tape[ptr++];
        var ZDim = tape[ptr++];
        return new IfcBoundingBox(expressID, type, Corner, XDim, YDim, ZDim);
      }
    }]);

    return IfcBoundingBox;
  }();

  _exports.IfcBoundingBox = IfcBoundingBox;

  var IfcBoxedHalfSpace = /*#__PURE__*/function () {
    function IfcBoxedHalfSpace(expressID, type, BaseSurface, AgreementFlag, Enclosure) {
      _classCallCheck(this, IfcBoxedHalfSpace);

      this.expressID = expressID;
      this.type = type;
      this.BaseSurface = BaseSurface;
      this.AgreementFlag = AgreementFlag;
      this.Enclosure = Enclosure;
    }

    _createClass(IfcBoxedHalfSpace, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BaseSurface);
        ;
        args.push(this.AgreementFlag);
        ;
        args.push(this.Enclosure);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BaseSurface = tape[ptr++];
        var AgreementFlag = tape[ptr++];
        var Enclosure = tape[ptr++];
        return new IfcBoxedHalfSpace(expressID, type, BaseSurface, AgreementFlag, Enclosure);
      }
    }]);

    return IfcBoxedHalfSpace;
  }();

  _exports.IfcBoxedHalfSpace = IfcBoxedHalfSpace;

  var IfcBridge = /*#__PURE__*/function () {
    function IfcBridge(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {
      _classCallCheck(this, IfcBridge);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcBridge, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBridge(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType);
      }
    }]);

    return IfcBridge;
  }();

  _exports.IfcBridge = IfcBridge;

  var IfcBridgePart = /*#__PURE__*/function () {
    function IfcBridgePart(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {
      _classCallCheck(this, IfcBridgePart);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcBridgePart, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBridgePart(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType);
      }
    }]);

    return IfcBridgePart;
  }();

  _exports.IfcBridgePart = IfcBridgePart;

  var IfcBuilding = /*#__PURE__*/function () {
    function IfcBuilding(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {
      _classCallCheck(this, IfcBuilding);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcBuilding, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        args.push(this.ElevationOfRefHeight);
        ;
        args.push(this.ElevationOfTerrain);
        ;
        args.push(this.BuildingAddress);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        var ElevationOfRefHeight = tape[ptr++];
        var ElevationOfTerrain = tape[ptr++];
        var BuildingAddress = tape[ptr++];
        return new IfcBuilding(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress);
      }
    }]);

    return IfcBuilding;
  }();

  _exports.IfcBuilding = IfcBuilding;

  var IfcBuildingElement = /*#__PURE__*/function () {
    function IfcBuildingElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcBuildingElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcBuildingElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcBuildingElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcBuildingElement;
  }();

  _exports.IfcBuildingElement = IfcBuildingElement;

  var IfcBuildingElementPart = /*#__PURE__*/function () {
    function IfcBuildingElementPart(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBuildingElementPart);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBuildingElementPart, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBuildingElementPart(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBuildingElementPart;
  }();

  _exports.IfcBuildingElementPart = IfcBuildingElementPart;

  var IfcBuildingElementPartType = /*#__PURE__*/function () {
    function IfcBuildingElementPartType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcBuildingElementPartType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBuildingElementPartType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBuildingElementPartType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcBuildingElementPartType;
  }();

  _exports.IfcBuildingElementPartType = IfcBuildingElementPartType;

  var IfcBuildingElementProxy = /*#__PURE__*/function () {
    function IfcBuildingElementProxy(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBuildingElementProxy);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBuildingElementProxy, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBuildingElementProxy(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBuildingElementProxy;
  }();

  _exports.IfcBuildingElementProxy = IfcBuildingElementProxy;

  var IfcBuildingElementProxyType = /*#__PURE__*/function () {
    function IfcBuildingElementProxyType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcBuildingElementProxyType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBuildingElementProxyType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBuildingElementProxyType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcBuildingElementProxyType;
  }();

  _exports.IfcBuildingElementProxyType = IfcBuildingElementProxyType;

  var IfcBuildingElementType = /*#__PURE__*/function () {
    function IfcBuildingElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcBuildingElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcBuildingElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcBuildingElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcBuildingElementType;
  }();

  _exports.IfcBuildingElementType = IfcBuildingElementType;

  var IfcBuildingStorey = /*#__PURE__*/function () {
    function IfcBuildingStorey(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {
      _classCallCheck(this, IfcBuildingStorey);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcBuildingStorey, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        args.push(this.Elevation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        var Elevation = tape[ptr++];
        return new IfcBuildingStorey(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation);
      }
    }]);

    return IfcBuildingStorey;
  }();

  _exports.IfcBuildingStorey = IfcBuildingStorey;

  var IfcBuildingSystem = /*#__PURE__*/function () {
    function IfcBuildingSystem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {
      _classCallCheck(this, IfcBuildingSystem);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.PredefinedType = PredefinedType;
      this.LongName = LongName;
    }

    _createClass(IfcBuildingSystem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.LongName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var LongName = tape[ptr++];
        return new IfcBuildingSystem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName);
      }
    }]);

    return IfcBuildingSystem;
  }();

  _exports.IfcBuildingSystem = IfcBuildingSystem;

  var IfcBurner = /*#__PURE__*/function () {
    function IfcBurner(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcBurner);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBurner, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBurner(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcBurner;
  }();

  _exports.IfcBurner = IfcBurner;

  var IfcBurnerType = /*#__PURE__*/function () {
    function IfcBurnerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcBurnerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcBurnerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcBurnerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcBurnerType;
  }();

  _exports.IfcBurnerType = IfcBurnerType;

  var IfcCShapeProfileDef = /*#__PURE__*/function () {
    function IfcCShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {
      _classCallCheck(this, IfcCShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.Depth = Depth;
      this.Width = Width;
      this.WallThickness = WallThickness;
      this.Girth = Girth;
      this.InternalFilletRadius = InternalFilletRadius;
    }

    _createClass(IfcCShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Depth);
        ;
        args.push(this.Width);
        ;
        args.push(this.WallThickness);
        ;
        args.push(this.Girth);
        ;
        args.push(this.InternalFilletRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Depth = tape[ptr++];
        var Width = tape[ptr++];
        var WallThickness = tape[ptr++];
        var Girth = tape[ptr++];
        var InternalFilletRadius = tape[ptr++];
        return new IfcCShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius);
      }
    }]);

    return IfcCShapeProfileDef;
  }();

  _exports.IfcCShapeProfileDef = IfcCShapeProfileDef;

  var IfcCableCarrierFitting = /*#__PURE__*/function () {
    function IfcCableCarrierFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCableCarrierFitting);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableCarrierFitting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableCarrierFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCableCarrierFitting;
  }();

  _exports.IfcCableCarrierFitting = IfcCableCarrierFitting;

  var IfcCableCarrierFittingType = /*#__PURE__*/function () {
    function IfcCableCarrierFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCableCarrierFittingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableCarrierFittingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableCarrierFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCableCarrierFittingType;
  }();

  _exports.IfcCableCarrierFittingType = IfcCableCarrierFittingType;

  var IfcCableCarrierSegment = /*#__PURE__*/function () {
    function IfcCableCarrierSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCableCarrierSegment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableCarrierSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableCarrierSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCableCarrierSegment;
  }();

  _exports.IfcCableCarrierSegment = IfcCableCarrierSegment;

  var IfcCableCarrierSegmentType = /*#__PURE__*/function () {
    function IfcCableCarrierSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCableCarrierSegmentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableCarrierSegmentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableCarrierSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCableCarrierSegmentType;
  }();

  _exports.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;

  var IfcCableFitting = /*#__PURE__*/function () {
    function IfcCableFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCableFitting);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableFitting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCableFitting;
  }();

  _exports.IfcCableFitting = IfcCableFitting;

  var IfcCableFittingType = /*#__PURE__*/function () {
    function IfcCableFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCableFittingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableFittingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCableFittingType;
  }();

  _exports.IfcCableFittingType = IfcCableFittingType;

  var IfcCableSegment = /*#__PURE__*/function () {
    function IfcCableSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCableSegment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCableSegment;
  }();

  _exports.IfcCableSegment = IfcCableSegment;

  var IfcCableSegmentType = /*#__PURE__*/function () {
    function IfcCableSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCableSegmentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCableSegmentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCableSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCableSegmentType;
  }();

  _exports.IfcCableSegmentType = IfcCableSegmentType;

  var IfcCaissonFoundation = /*#__PURE__*/function () {
    function IfcCaissonFoundation(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCaissonFoundation);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCaissonFoundation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCaissonFoundation(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCaissonFoundation;
  }();

  _exports.IfcCaissonFoundation = IfcCaissonFoundation;

  var IfcCaissonFoundationType = /*#__PURE__*/function () {
    function IfcCaissonFoundationType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCaissonFoundationType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCaissonFoundationType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCaissonFoundationType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCaissonFoundationType;
  }();

  _exports.IfcCaissonFoundationType = IfcCaissonFoundationType;

  var IfcCartesianPoint = /*#__PURE__*/function () {
    function IfcCartesianPoint(expressID, type, Coordinates) {
      _classCallCheck(this, IfcCartesianPoint);

      this.expressID = expressID;
      this.type = type;
      this.Coordinates = Coordinates;
    }

    _createClass(IfcCartesianPoint, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Coordinates);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Coordinates = tape[ptr++];
        return new IfcCartesianPoint(expressID, type, Coordinates);
      }
    }]);

    return IfcCartesianPoint;
  }();

  _exports.IfcCartesianPoint = IfcCartesianPoint;

  var IfcCartesianPointList = /*#__PURE__*/function () {
    function IfcCartesianPointList(expressID, type) {
      _classCallCheck(this, IfcCartesianPointList);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcCartesianPointList, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcCartesianPointList(expressID, type);
      }
    }]);

    return IfcCartesianPointList;
  }();

  _exports.IfcCartesianPointList = IfcCartesianPointList;

  var IfcCartesianPointList2D = /*#__PURE__*/function () {
    function IfcCartesianPointList2D(expressID, type, CoordList, TagList) {
      _classCallCheck(this, IfcCartesianPointList2D);

      this.expressID = expressID;
      this.type = type;
      this.CoordList = CoordList;
      this.TagList = TagList;
    }

    _createClass(IfcCartesianPointList2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CoordList);
        ;
        args.push(this.TagList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CoordList = tape[ptr++];
        var TagList = tape[ptr++];
        return new IfcCartesianPointList2D(expressID, type, CoordList, TagList);
      }
    }]);

    return IfcCartesianPointList2D;
  }();

  _exports.IfcCartesianPointList2D = IfcCartesianPointList2D;

  var IfcCartesianPointList3D = /*#__PURE__*/function () {
    function IfcCartesianPointList3D(expressID, type, CoordList, TagList) {
      _classCallCheck(this, IfcCartesianPointList3D);

      this.expressID = expressID;
      this.type = type;
      this.CoordList = CoordList;
      this.TagList = TagList;
    }

    _createClass(IfcCartesianPointList3D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CoordList);
        ;
        args.push(this.TagList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CoordList = tape[ptr++];
        var TagList = tape[ptr++];
        return new IfcCartesianPointList3D(expressID, type, CoordList, TagList);
      }
    }]);

    return IfcCartesianPointList3D;
  }();

  _exports.IfcCartesianPointList3D = IfcCartesianPointList3D;

  var IfcCartesianTransformationOperator = /*#__PURE__*/function () {
    function IfcCartesianTransformationOperator(expressID, type, Axis1, Axis2, LocalOrigin, Scale) {
      _classCallCheck(this, IfcCartesianTransformationOperator);

      this.expressID = expressID;
      this.type = type;
      this.Axis1 = Axis1;
      this.Axis2 = Axis2;
      this.LocalOrigin = LocalOrigin;
      this.Scale = Scale;
    }

    _createClass(IfcCartesianTransformationOperator, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Axis1);
        ;
        args.push(this.Axis2);
        ;
        args.push(this.LocalOrigin);
        ;
        args.push(this.Scale);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Axis1 = tape[ptr++];
        var Axis2 = tape[ptr++];
        var LocalOrigin = tape[ptr++];
        var Scale = tape[ptr++];
        return new IfcCartesianTransformationOperator(expressID, type, Axis1, Axis2, LocalOrigin, Scale);
      }
    }]);

    return IfcCartesianTransformationOperator;
  }();

  _exports.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;

  var IfcCartesianTransformationOperator2D = /*#__PURE__*/function () {
    function IfcCartesianTransformationOperator2D(expressID, type, Axis1, Axis2, LocalOrigin, Scale) {
      _classCallCheck(this, IfcCartesianTransformationOperator2D);

      this.expressID = expressID;
      this.type = type;
      this.Axis1 = Axis1;
      this.Axis2 = Axis2;
      this.LocalOrigin = LocalOrigin;
      this.Scale = Scale;
    }

    _createClass(IfcCartesianTransformationOperator2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Axis1);
        ;
        args.push(this.Axis2);
        ;
        args.push(this.LocalOrigin);
        ;
        args.push(this.Scale);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Axis1 = tape[ptr++];
        var Axis2 = tape[ptr++];
        var LocalOrigin = tape[ptr++];
        var Scale = tape[ptr++];
        return new IfcCartesianTransformationOperator2D(expressID, type, Axis1, Axis2, LocalOrigin, Scale);
      }
    }]);

    return IfcCartesianTransformationOperator2D;
  }();

  _exports.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;

  var IfcCartesianTransformationOperator2DnonUniform = /*#__PURE__*/function () {
    function IfcCartesianTransformationOperator2DnonUniform(expressID, type, Axis1, Axis2, LocalOrigin, Scale, Scale2) {
      _classCallCheck(this, IfcCartesianTransformationOperator2DnonUniform);

      this.expressID = expressID;
      this.type = type;
      this.Axis1 = Axis1;
      this.Axis2 = Axis2;
      this.LocalOrigin = LocalOrigin;
      this.Scale = Scale;
      this.Scale2 = Scale2;
    }

    _createClass(IfcCartesianTransformationOperator2DnonUniform, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Axis1);
        ;
        args.push(this.Axis2);
        ;
        args.push(this.LocalOrigin);
        ;
        args.push(this.Scale);
        ;
        args.push(this.Scale2);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Axis1 = tape[ptr++];
        var Axis2 = tape[ptr++];
        var LocalOrigin = tape[ptr++];
        var Scale = tape[ptr++];
        var Scale2 = tape[ptr++];
        return new IfcCartesianTransformationOperator2DnonUniform(expressID, type, Axis1, Axis2, LocalOrigin, Scale, Scale2);
      }
    }]);

    return IfcCartesianTransformationOperator2DnonUniform;
  }();

  _exports.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;

  var IfcCartesianTransformationOperator3D = /*#__PURE__*/function () {
    function IfcCartesianTransformationOperator3D(expressID, type, Axis1, Axis2, LocalOrigin, Scale, Axis3) {
      _classCallCheck(this, IfcCartesianTransformationOperator3D);

      this.expressID = expressID;
      this.type = type;
      this.Axis1 = Axis1;
      this.Axis2 = Axis2;
      this.LocalOrigin = LocalOrigin;
      this.Scale = Scale;
      this.Axis3 = Axis3;
    }

    _createClass(IfcCartesianTransformationOperator3D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Axis1);
        ;
        args.push(this.Axis2);
        ;
        args.push(this.LocalOrigin);
        ;
        args.push(this.Scale);
        ;
        args.push(this.Axis3);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Axis1 = tape[ptr++];
        var Axis2 = tape[ptr++];
        var LocalOrigin = tape[ptr++];
        var Scale = tape[ptr++];
        var Axis3 = tape[ptr++];
        return new IfcCartesianTransformationOperator3D(expressID, type, Axis1, Axis2, LocalOrigin, Scale, Axis3);
      }
    }]);

    return IfcCartesianTransformationOperator3D;
  }();

  _exports.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;

  var IfcCartesianTransformationOperator3DnonUniform = /*#__PURE__*/function () {
    function IfcCartesianTransformationOperator3DnonUniform(expressID, type, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {
      _classCallCheck(this, IfcCartesianTransformationOperator3DnonUniform);

      this.expressID = expressID;
      this.type = type;
      this.Axis1 = Axis1;
      this.Axis2 = Axis2;
      this.LocalOrigin = LocalOrigin;
      this.Scale = Scale;
      this.Axis3 = Axis3;
      this.Scale2 = Scale2;
      this.Scale3 = Scale3;
    }

    _createClass(IfcCartesianTransformationOperator3DnonUniform, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Axis1);
        ;
        args.push(this.Axis2);
        ;
        args.push(this.LocalOrigin);
        ;
        args.push(this.Scale);
        ;
        args.push(this.Axis3);
        ;
        args.push(this.Scale2);
        ;
        args.push(this.Scale3);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Axis1 = tape[ptr++];
        var Axis2 = tape[ptr++];
        var LocalOrigin = tape[ptr++];
        var Scale = tape[ptr++];
        var Axis3 = tape[ptr++];
        var Scale2 = tape[ptr++];
        var Scale3 = tape[ptr++];
        return new IfcCartesianTransformationOperator3DnonUniform(expressID, type, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3);
      }
    }]);

    return IfcCartesianTransformationOperator3DnonUniform;
  }();

  _exports.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;

  var IfcCenterLineProfileDef = /*#__PURE__*/function () {
    function IfcCenterLineProfileDef(expressID, type, ProfileType, ProfileName, Curve, Thickness) {
      _classCallCheck(this, IfcCenterLineProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Curve = Curve;
      this.Thickness = Thickness;
    }

    _createClass(IfcCenterLineProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Curve);
        ;
        args.push(this.Thickness);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Curve = tape[ptr++];
        var Thickness = tape[ptr++];
        return new IfcCenterLineProfileDef(expressID, type, ProfileType, ProfileName, Curve, Thickness);
      }
    }]);

    return IfcCenterLineProfileDef;
  }();

  _exports.IfcCenterLineProfileDef = IfcCenterLineProfileDef;

  var IfcChiller = /*#__PURE__*/function () {
    function IfcChiller(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcChiller);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcChiller, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcChiller(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcChiller;
  }();

  _exports.IfcChiller = IfcChiller;

  var IfcChillerType = /*#__PURE__*/function () {
    function IfcChillerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcChillerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcChillerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcChillerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcChillerType;
  }();

  _exports.IfcChillerType = IfcChillerType;

  var IfcChimney = /*#__PURE__*/function () {
    function IfcChimney(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcChimney);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcChimney, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcChimney(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcChimney;
  }();

  _exports.IfcChimney = IfcChimney;

  var IfcChimneyType = /*#__PURE__*/function () {
    function IfcChimneyType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcChimneyType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcChimneyType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcChimneyType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcChimneyType;
  }();

  _exports.IfcChimneyType = IfcChimneyType;

  var IfcCircle = /*#__PURE__*/function () {
    function IfcCircle(expressID, type, Position, Radius) {
      _classCallCheck(this, IfcCircle);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.Radius = Radius;
    }

    _createClass(IfcCircle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        return new IfcCircle(expressID, type, Position, Radius);
      }
    }]);

    return IfcCircle;
  }();

  _exports.IfcCircle = IfcCircle;

  var IfcCircleHollowProfileDef = /*#__PURE__*/function () {
    function IfcCircleHollowProfileDef(expressID, type, ProfileType, ProfileName, Position, Radius, WallThickness) {
      _classCallCheck(this, IfcCircleHollowProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.Radius = Radius;
      this.WallThickness = WallThickness;
    }

    _createClass(IfcCircleHollowProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        args.push(this.WallThickness);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        var WallThickness = tape[ptr++];
        return new IfcCircleHollowProfileDef(expressID, type, ProfileType, ProfileName, Position, Radius, WallThickness);
      }
    }]);

    return IfcCircleHollowProfileDef;
  }();

  _exports.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;

  var IfcCircleProfileDef = /*#__PURE__*/function () {
    function IfcCircleProfileDef(expressID, type, ProfileType, ProfileName, Position, Radius) {
      _classCallCheck(this, IfcCircleProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.Radius = Radius;
    }

    _createClass(IfcCircleProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        return new IfcCircleProfileDef(expressID, type, ProfileType, ProfileName, Position, Radius);
      }
    }]);

    return IfcCircleProfileDef;
  }();

  _exports.IfcCircleProfileDef = IfcCircleProfileDef;

  var IfcCircularArcSegment2D = /*#__PURE__*/function () {
    function IfcCircularArcSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength, Radius, IsCCW) {
      _classCallCheck(this, IfcCircularArcSegment2D);

      this.expressID = expressID;
      this.type = type;
      this.StartPoint = StartPoint;
      this.StartDirection = StartDirection;
      this.SegmentLength = SegmentLength;
      this.Radius = Radius;
      this.IsCCW = IsCCW;
    }

    _createClass(IfcCircularArcSegment2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.StartPoint);
        ;
        args.push(this.StartDirection);
        ;
        args.push(this.SegmentLength);
        ;
        args.push(this.Radius);
        ;
        args.push(this.IsCCW);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var StartPoint = tape[ptr++];
        var StartDirection = tape[ptr++];
        var SegmentLength = tape[ptr++];
        var Radius = tape[ptr++];
        var IsCCW = tape[ptr++];
        return new IfcCircularArcSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength, Radius, IsCCW);
      }
    }]);

    return IfcCircularArcSegment2D;
  }();

  _exports.IfcCircularArcSegment2D = IfcCircularArcSegment2D;

  var IfcCivilElement = /*#__PURE__*/function () {
    function IfcCivilElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcCivilElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcCivilElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcCivilElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcCivilElement;
  }();

  _exports.IfcCivilElement = IfcCivilElement;

  var IfcCivilElementType = /*#__PURE__*/function () {
    function IfcCivilElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcCivilElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcCivilElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcCivilElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcCivilElementType;
  }();

  _exports.IfcCivilElementType = IfcCivilElementType;

  var IfcClassification = /*#__PURE__*/function () {
    function IfcClassification(expressID, type, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) {
      _classCallCheck(this, IfcClassification);

      this.expressID = expressID;
      this.type = type;
      this.Source = Source;
      this.Edition = Edition;
      this.EditionDate = EditionDate;
      this.Name = Name;
      this.Description = Description;
      this.Location = Location;
      this.ReferenceTokens = ReferenceTokens;
    }

    _createClass(IfcClassification, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Source);
        ;
        args.push(this.Edition);
        ;
        args.push(this.EditionDate);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Location);
        ;
        args.push(this.ReferenceTokens);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Source = tape[ptr++];
        var Edition = tape[ptr++];
        var EditionDate = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Location = tape[ptr++];
        var ReferenceTokens = tape[ptr++];
        return new IfcClassification(expressID, type, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens);
      }
    }]);

    return IfcClassification;
  }();

  _exports.IfcClassification = IfcClassification;

  var IfcClassificationReference = /*#__PURE__*/function () {
    function IfcClassificationReference(expressID, type, Location, Identification, Name, ReferencedSource, Description, Sort) {
      _classCallCheck(this, IfcClassificationReference);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
      this.ReferencedSource = ReferencedSource;
      this.Description = Description;
      this.Sort = Sort;
    }

    _createClass(IfcClassificationReference, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        args.push(this.ReferencedSource);
        ;
        args.push(this.Description);
        ;
        args.push(this.Sort);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        var ReferencedSource = tape[ptr++];
        var Description = tape[ptr++];
        var Sort = tape[ptr++];
        return new IfcClassificationReference(expressID, type, Location, Identification, Name, ReferencedSource, Description, Sort);
      }
    }]);

    return IfcClassificationReference;
  }();

  _exports.IfcClassificationReference = IfcClassificationReference;

  var IfcClosedShell = /*#__PURE__*/function () {
    function IfcClosedShell(expressID, type, CfsFaces) {
      _classCallCheck(this, IfcClosedShell);

      this.expressID = expressID;
      this.type = type;
      this.CfsFaces = CfsFaces;
    }

    _createClass(IfcClosedShell, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CfsFaces);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CfsFaces = tape[ptr++];
        return new IfcClosedShell(expressID, type, CfsFaces);
      }
    }]);

    return IfcClosedShell;
  }();

  _exports.IfcClosedShell = IfcClosedShell;

  var IfcCoil = /*#__PURE__*/function () {
    function IfcCoil(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCoil);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCoil, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCoil(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCoil;
  }();

  _exports.IfcCoil = IfcCoil;

  var IfcCoilType = /*#__PURE__*/function () {
    function IfcCoilType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCoilType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCoilType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCoilType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCoilType;
  }();

  _exports.IfcCoilType = IfcCoilType;

  var IfcColourRgb = /*#__PURE__*/function () {
    function IfcColourRgb(expressID, type, Name, Red, Green, Blue) {
      _classCallCheck(this, IfcColourRgb);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Red = Red;
      this.Green = Green;
      this.Blue = Blue;
    }

    _createClass(IfcColourRgb, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Red);
        ;
        args.push(this.Green);
        ;
        args.push(this.Blue);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Red = tape[ptr++];
        var Green = tape[ptr++];
        var Blue = tape[ptr++];
        return new IfcColourRgb(expressID, type, Name, Red, Green, Blue);
      }
    }]);

    return IfcColourRgb;
  }();

  _exports.IfcColourRgb = IfcColourRgb;

  var IfcColourRgbList = /*#__PURE__*/function () {
    function IfcColourRgbList(expressID, type, ColourList) {
      _classCallCheck(this, IfcColourRgbList);

      this.expressID = expressID;
      this.type = type;
      this.ColourList = ColourList;
    }

    _createClass(IfcColourRgbList, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ColourList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ColourList = tape[ptr++];
        return new IfcColourRgbList(expressID, type, ColourList);
      }
    }]);

    return IfcColourRgbList;
  }();

  _exports.IfcColourRgbList = IfcColourRgbList;

  var IfcColourSpecification = /*#__PURE__*/function () {
    function IfcColourSpecification(expressID, type, Name) {
      _classCallCheck(this, IfcColourSpecification);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcColourSpecification, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcColourSpecification(expressID, type, Name);
      }
    }]);

    return IfcColourSpecification;
  }();

  _exports.IfcColourSpecification = IfcColourSpecification;

  var IfcColumn = /*#__PURE__*/function () {
    function IfcColumn(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcColumn);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcColumn, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcColumn(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcColumn;
  }();

  _exports.IfcColumn = IfcColumn;

  var IfcColumnStandardCase = /*#__PURE__*/function () {
    function IfcColumnStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcColumnStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcColumnStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcColumnStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcColumnStandardCase;
  }();

  _exports.IfcColumnStandardCase = IfcColumnStandardCase;

  var IfcColumnType = /*#__PURE__*/function () {
    function IfcColumnType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcColumnType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcColumnType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcColumnType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcColumnType;
  }();

  _exports.IfcColumnType = IfcColumnType;

  var IfcCommunicationsAppliance = /*#__PURE__*/function () {
    function IfcCommunicationsAppliance(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCommunicationsAppliance);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCommunicationsAppliance, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCommunicationsAppliance(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCommunicationsAppliance;
  }();

  _exports.IfcCommunicationsAppliance = IfcCommunicationsAppliance;

  var IfcCommunicationsApplianceType = /*#__PURE__*/function () {
    function IfcCommunicationsApplianceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCommunicationsApplianceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCommunicationsApplianceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCommunicationsApplianceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCommunicationsApplianceType;
  }();

  _exports.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;

  var IfcComplexProperty = /*#__PURE__*/function () {
    function IfcComplexProperty(expressID, type, Name, Description, UsageName, HasProperties) {
      _classCallCheck(this, IfcComplexProperty);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.UsageName = UsageName;
      this.HasProperties = HasProperties;
    }

    _createClass(IfcComplexProperty, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.UsageName);
        ;
        args.push(this.HasProperties);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var UsageName = tape[ptr++];
        var HasProperties = tape[ptr++];
        return new IfcComplexProperty(expressID, type, Name, Description, UsageName, HasProperties);
      }
    }]);

    return IfcComplexProperty;
  }();

  _exports.IfcComplexProperty = IfcComplexProperty;

  var IfcComplexPropertyTemplate = /*#__PURE__*/function () {
    function IfcComplexPropertyTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {
      _classCallCheck(this, IfcComplexPropertyTemplate);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.UsageName = UsageName;
      this.TemplateType = TemplateType;
      this.HasPropertyTemplates = HasPropertyTemplates;
    }

    _createClass(IfcComplexPropertyTemplate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.UsageName);
        ;
        args.push(this.TemplateType);
        ;
        args.push(this.HasPropertyTemplates);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var UsageName = tape[ptr++];
        var TemplateType = tape[ptr++];
        var HasPropertyTemplates = tape[ptr++];
        return new IfcComplexPropertyTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates);
      }
    }]);

    return IfcComplexPropertyTemplate;
  }();

  _exports.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;

  var IfcCompositeCurve = /*#__PURE__*/function () {
    function IfcCompositeCurve(expressID, type, Segments, SelfIntersect) {
      _classCallCheck(this, IfcCompositeCurve);

      this.expressID = expressID;
      this.type = type;
      this.Segments = Segments;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcCompositeCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Segments);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Segments = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcCompositeCurve(expressID, type, Segments, SelfIntersect);
      }
    }]);

    return IfcCompositeCurve;
  }();

  _exports.IfcCompositeCurve = IfcCompositeCurve;

  var IfcCompositeCurveOnSurface = /*#__PURE__*/function () {
    function IfcCompositeCurveOnSurface(expressID, type, Segments, SelfIntersect) {
      _classCallCheck(this, IfcCompositeCurveOnSurface);

      this.expressID = expressID;
      this.type = type;
      this.Segments = Segments;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcCompositeCurveOnSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Segments);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Segments = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcCompositeCurveOnSurface(expressID, type, Segments, SelfIntersect);
      }
    }]);

    return IfcCompositeCurveOnSurface;
  }();

  _exports.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;

  var IfcCompositeCurveSegment = /*#__PURE__*/function () {
    function IfcCompositeCurveSegment(expressID, type, Transition, SameSense, ParentCurve) {
      _classCallCheck(this, IfcCompositeCurveSegment);

      this.expressID = expressID;
      this.type = type;
      this.Transition = Transition;
      this.SameSense = SameSense;
      this.ParentCurve = ParentCurve;
    }

    _createClass(IfcCompositeCurveSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Transition);
        ;
        args.push(this.SameSense);
        ;
        args.push(this.ParentCurve);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Transition = tape[ptr++];
        var SameSense = tape[ptr++];
        var ParentCurve = tape[ptr++];
        return new IfcCompositeCurveSegment(expressID, type, Transition, SameSense, ParentCurve);
      }
    }]);

    return IfcCompositeCurveSegment;
  }();

  _exports.IfcCompositeCurveSegment = IfcCompositeCurveSegment;

  var IfcCompositeProfileDef = /*#__PURE__*/function () {
    function IfcCompositeProfileDef(expressID, type, ProfileType, ProfileName, Profiles, Label) {
      _classCallCheck(this, IfcCompositeProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Profiles = Profiles;
      this.Label = Label;
    }

    _createClass(IfcCompositeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Profiles);
        ;
        args.push(this.Label);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Profiles = tape[ptr++];
        var Label = tape[ptr++];
        return new IfcCompositeProfileDef(expressID, type, ProfileType, ProfileName, Profiles, Label);
      }
    }]);

    return IfcCompositeProfileDef;
  }();

  _exports.IfcCompositeProfileDef = IfcCompositeProfileDef;

  var IfcCompressor = /*#__PURE__*/function () {
    function IfcCompressor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCompressor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCompressor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCompressor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCompressor;
  }();

  _exports.IfcCompressor = IfcCompressor;

  var IfcCompressorType = /*#__PURE__*/function () {
    function IfcCompressorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCompressorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCompressorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCompressorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCompressorType;
  }();

  _exports.IfcCompressorType = IfcCompressorType;

  var IfcCondenser = /*#__PURE__*/function () {
    function IfcCondenser(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCondenser);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCondenser, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCondenser(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCondenser;
  }();

  _exports.IfcCondenser = IfcCondenser;

  var IfcCondenserType = /*#__PURE__*/function () {
    function IfcCondenserType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCondenserType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCondenserType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCondenserType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCondenserType;
  }();

  _exports.IfcCondenserType = IfcCondenserType;

  var IfcConic = /*#__PURE__*/function () {
    function IfcConic(expressID, type, Position) {
      _classCallCheck(this, IfcConic);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
    }

    _createClass(IfcConic, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        return new IfcConic(expressID, type, Position);
      }
    }]);

    return IfcConic;
  }();

  _exports.IfcConic = IfcConic;

  var IfcConnectedFaceSet = /*#__PURE__*/function () {
    function IfcConnectedFaceSet(expressID, type, CfsFaces) {
      _classCallCheck(this, IfcConnectedFaceSet);

      this.expressID = expressID;
      this.type = type;
      this.CfsFaces = CfsFaces;
    }

    _createClass(IfcConnectedFaceSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CfsFaces);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CfsFaces = tape[ptr++];
        return new IfcConnectedFaceSet(expressID, type, CfsFaces);
      }
    }]);

    return IfcConnectedFaceSet;
  }();

  _exports.IfcConnectedFaceSet = IfcConnectedFaceSet;

  var IfcConnectionCurveGeometry = /*#__PURE__*/function () {
    function IfcConnectionCurveGeometry(expressID, type, CurveOnRelatingElement, CurveOnRelatedElement) {
      _classCallCheck(this, IfcConnectionCurveGeometry);

      this.expressID = expressID;
      this.type = type;
      this.CurveOnRelatingElement = CurveOnRelatingElement;
      this.CurveOnRelatedElement = CurveOnRelatedElement;
    }

    _createClass(IfcConnectionCurveGeometry, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CurveOnRelatingElement);
        ;
        args.push(this.CurveOnRelatedElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CurveOnRelatingElement = tape[ptr++];
        var CurveOnRelatedElement = tape[ptr++];
        return new IfcConnectionCurveGeometry(expressID, type, CurveOnRelatingElement, CurveOnRelatedElement);
      }
    }]);

    return IfcConnectionCurveGeometry;
  }();

  _exports.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;

  var IfcConnectionGeometry = /*#__PURE__*/function () {
    function IfcConnectionGeometry(expressID, type) {
      _classCallCheck(this, IfcConnectionGeometry);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcConnectionGeometry, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcConnectionGeometry(expressID, type);
      }
    }]);

    return IfcConnectionGeometry;
  }();

  _exports.IfcConnectionGeometry = IfcConnectionGeometry;

  var IfcConnectionPointEccentricity = /*#__PURE__*/function () {
    function IfcConnectionPointEccentricity(expressID, type, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {
      _classCallCheck(this, IfcConnectionPointEccentricity);

      this.expressID = expressID;
      this.type = type;
      this.PointOnRelatingElement = PointOnRelatingElement;
      this.PointOnRelatedElement = PointOnRelatedElement;
      this.EccentricityInX = EccentricityInX;
      this.EccentricityInY = EccentricityInY;
      this.EccentricityInZ = EccentricityInZ;
    }

    _createClass(IfcConnectionPointEccentricity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.PointOnRelatingElement);
        ;
        args.push(this.PointOnRelatedElement);
        ;
        args.push(this.EccentricityInX);
        ;
        args.push(this.EccentricityInY);
        ;
        args.push(this.EccentricityInZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var PointOnRelatingElement = tape[ptr++];
        var PointOnRelatedElement = tape[ptr++];
        var EccentricityInX = tape[ptr++];
        var EccentricityInY = tape[ptr++];
        var EccentricityInZ = tape[ptr++];
        return new IfcConnectionPointEccentricity(expressID, type, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ);
      }
    }]);

    return IfcConnectionPointEccentricity;
  }();

  _exports.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;

  var IfcConnectionPointGeometry = /*#__PURE__*/function () {
    function IfcConnectionPointGeometry(expressID, type, PointOnRelatingElement, PointOnRelatedElement) {
      _classCallCheck(this, IfcConnectionPointGeometry);

      this.expressID = expressID;
      this.type = type;
      this.PointOnRelatingElement = PointOnRelatingElement;
      this.PointOnRelatedElement = PointOnRelatedElement;
    }

    _createClass(IfcConnectionPointGeometry, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.PointOnRelatingElement);
        ;
        args.push(this.PointOnRelatedElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var PointOnRelatingElement = tape[ptr++];
        var PointOnRelatedElement = tape[ptr++];
        return new IfcConnectionPointGeometry(expressID, type, PointOnRelatingElement, PointOnRelatedElement);
      }
    }]);

    return IfcConnectionPointGeometry;
  }();

  _exports.IfcConnectionPointGeometry = IfcConnectionPointGeometry;

  var IfcConnectionSurfaceGeometry = /*#__PURE__*/function () {
    function IfcConnectionSurfaceGeometry(expressID, type, SurfaceOnRelatingElement, SurfaceOnRelatedElement) {
      _classCallCheck(this, IfcConnectionSurfaceGeometry);

      this.expressID = expressID;
      this.type = type;
      this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;
      this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;
    }

    _createClass(IfcConnectionSurfaceGeometry, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SurfaceOnRelatingElement);
        ;
        args.push(this.SurfaceOnRelatedElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SurfaceOnRelatingElement = tape[ptr++];
        var SurfaceOnRelatedElement = tape[ptr++];
        return new IfcConnectionSurfaceGeometry(expressID, type, SurfaceOnRelatingElement, SurfaceOnRelatedElement);
      }
    }]);

    return IfcConnectionSurfaceGeometry;
  }();

  _exports.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;

  var IfcConnectionVolumeGeometry = /*#__PURE__*/function () {
    function IfcConnectionVolumeGeometry(expressID, type, VolumeOnRelatingElement, VolumeOnRelatedElement) {
      _classCallCheck(this, IfcConnectionVolumeGeometry);

      this.expressID = expressID;
      this.type = type;
      this.VolumeOnRelatingElement = VolumeOnRelatingElement;
      this.VolumeOnRelatedElement = VolumeOnRelatedElement;
    }

    _createClass(IfcConnectionVolumeGeometry, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.VolumeOnRelatingElement);
        ;
        args.push(this.VolumeOnRelatedElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var VolumeOnRelatingElement = tape[ptr++];
        var VolumeOnRelatedElement = tape[ptr++];
        return new IfcConnectionVolumeGeometry(expressID, type, VolumeOnRelatingElement, VolumeOnRelatedElement);
      }
    }]);

    return IfcConnectionVolumeGeometry;
  }();

  _exports.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;

  var IfcConstraint = /*#__PURE__*/function () {
    function IfcConstraint(expressID, type, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {
      _classCallCheck(this, IfcConstraint);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.ConstraintGrade = ConstraintGrade;
      this.ConstraintSource = ConstraintSource;
      this.CreatingActor = CreatingActor;
      this.CreationTime = CreationTime;
      this.UserDefinedGrade = UserDefinedGrade;
    }

    _createClass(IfcConstraint, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ConstraintGrade);
        ;
        args.push(this.ConstraintSource);
        ;
        args.push(this.CreatingActor);
        ;
        args.push(this.CreationTime);
        ;
        args.push(this.UserDefinedGrade);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ConstraintGrade = tape[ptr++];
        var ConstraintSource = tape[ptr++];
        var CreatingActor = tape[ptr++];
        var CreationTime = tape[ptr++];
        var UserDefinedGrade = tape[ptr++];
        return new IfcConstraint(expressID, type, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
      }
    }]);

    return IfcConstraint;
  }();

  _exports.IfcConstraint = IfcConstraint;

  var IfcConstructionEquipmentResource = /*#__PURE__*/function () {
    function IfcConstructionEquipmentResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcConstructionEquipmentResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionEquipmentResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcConstructionEquipmentResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcConstructionEquipmentResource;
  }();

  _exports.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;

  var IfcConstructionEquipmentResourceType = /*#__PURE__*/function () {
    function IfcConstructionEquipmentResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcConstructionEquipmentResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionEquipmentResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcConstructionEquipmentResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcConstructionEquipmentResourceType;
  }();

  _exports.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;

  var IfcConstructionMaterialResource = /*#__PURE__*/function () {
    function IfcConstructionMaterialResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcConstructionMaterialResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionMaterialResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcConstructionMaterialResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcConstructionMaterialResource;
  }();

  _exports.IfcConstructionMaterialResource = IfcConstructionMaterialResource;

  var IfcConstructionMaterialResourceType = /*#__PURE__*/function () {
    function IfcConstructionMaterialResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcConstructionMaterialResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionMaterialResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcConstructionMaterialResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcConstructionMaterialResourceType;
  }();

  _exports.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;

  var IfcConstructionProductResource = /*#__PURE__*/function () {
    function IfcConstructionProductResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcConstructionProductResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionProductResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcConstructionProductResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcConstructionProductResource;
  }();

  _exports.IfcConstructionProductResource = IfcConstructionProductResource;

  var IfcConstructionProductResourceType = /*#__PURE__*/function () {
    function IfcConstructionProductResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcConstructionProductResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionProductResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcConstructionProductResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcConstructionProductResourceType;
  }();

  _exports.IfcConstructionProductResourceType = IfcConstructionProductResourceType;

  var IfcConstructionResource = /*#__PURE__*/function () {
    function IfcConstructionResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {
      _classCallCheck(this, IfcConstructionResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        return new IfcConstructionResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
      }
    }]);

    return IfcConstructionResource;
  }();

  _exports.IfcConstructionResource = IfcConstructionResource;

  var IfcConstructionResourceType = /*#__PURE__*/function () {
    function IfcConstructionResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {
      _classCallCheck(this, IfcConstructionResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcConstructionResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        return new IfcConstructionResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
      }
    }]);

    return IfcConstructionResourceType;
  }();

  _exports.IfcConstructionResourceType = IfcConstructionResourceType;

  var IfcContext = /*#__PURE__*/function () {
    function IfcContext(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
      _classCallCheck(this, IfcContext);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcContext, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.LongName);
        ;
        args.push(this.Phase);
        ;
        args.push(this.RepresentationContexts);
        ;
        args.push(this.UnitsInContext);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var LongName = tape[ptr++];
        var Phase = tape[ptr++];
        var RepresentationContexts = tape[ptr++];
        var UnitsInContext = tape[ptr++];
        return new IfcContext(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
      }
    }]);

    return IfcContext;
  }();

  _exports.IfcContext = IfcContext;

  var IfcContextDependentUnit = /*#__PURE__*/function () {
    function IfcContextDependentUnit(expressID, type, Dimensions, UnitType, Name) {
      _classCallCheck(this, IfcContextDependentUnit);

      this.expressID = expressID;
      this.type = type;
      this.Dimensions = Dimensions;
      this.UnitType = UnitType;
      this.Name = Name;
    }

    _createClass(IfcContextDependentUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Dimensions);
        ;
        args.push(this.UnitType);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Dimensions = tape[ptr++];
        var UnitType = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcContextDependentUnit(expressID, type, Dimensions, UnitType, Name);
      }
    }]);

    return IfcContextDependentUnit;
  }();

  _exports.IfcContextDependentUnit = IfcContextDependentUnit;

  var IfcControl = /*#__PURE__*/function () {
    function IfcControl(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {
      _classCallCheck(this, IfcControl);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.Identification = Identification;
    }

    _createClass(IfcControl, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        return new IfcControl(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
      }
    }]);

    return IfcControl;
  }();

  _exports.IfcControl = IfcControl;

  var IfcController = /*#__PURE__*/function () {
    function IfcController(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcController);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcController, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcController(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcController;
  }();

  _exports.IfcController = IfcController;

  var IfcControllerType = /*#__PURE__*/function () {
    function IfcControllerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcControllerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcControllerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcControllerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcControllerType;
  }();

  _exports.IfcControllerType = IfcControllerType;

  var IfcConversionBasedUnit = /*#__PURE__*/function () {
    function IfcConversionBasedUnit(expressID, type, Dimensions, UnitType, Name, ConversionFactor) {
      _classCallCheck(this, IfcConversionBasedUnit);

      this.expressID = expressID;
      this.type = type;
      this.Dimensions = Dimensions;
      this.UnitType = UnitType;
      this.Name = Name;
      this.ConversionFactor = ConversionFactor;
    }

    _createClass(IfcConversionBasedUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Dimensions);
        ;
        args.push(this.UnitType);
        ;
        args.push(this.Name);
        ;
        args.push(this.ConversionFactor);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Dimensions = tape[ptr++];
        var UnitType = tape[ptr++];
        var Name = tape[ptr++];
        var ConversionFactor = tape[ptr++];
        return new IfcConversionBasedUnit(expressID, type, Dimensions, UnitType, Name, ConversionFactor);
      }
    }]);

    return IfcConversionBasedUnit;
  }();

  _exports.IfcConversionBasedUnit = IfcConversionBasedUnit;

  var IfcConversionBasedUnitWithOffset = /*#__PURE__*/function () {
    function IfcConversionBasedUnitWithOffset(expressID, type, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {
      _classCallCheck(this, IfcConversionBasedUnitWithOffset);

      this.expressID = expressID;
      this.type = type;
      this.Dimensions = Dimensions;
      this.UnitType = UnitType;
      this.Name = Name;
      this.ConversionFactor = ConversionFactor;
      this.ConversionOffset = ConversionOffset;
    }

    _createClass(IfcConversionBasedUnitWithOffset, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Dimensions);
        ;
        args.push(this.UnitType);
        ;
        args.push(this.Name);
        ;
        args.push(this.ConversionFactor);
        ;
        args.push(this.ConversionOffset);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Dimensions = tape[ptr++];
        var UnitType = tape[ptr++];
        var Name = tape[ptr++];
        var ConversionFactor = tape[ptr++];
        var ConversionOffset = tape[ptr++];
        return new IfcConversionBasedUnitWithOffset(expressID, type, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset);
      }
    }]);

    return IfcConversionBasedUnitWithOffset;
  }();

  _exports.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;

  var IfcCooledBeam = /*#__PURE__*/function () {
    function IfcCooledBeam(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCooledBeam);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCooledBeam, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCooledBeam(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCooledBeam;
  }();

  _exports.IfcCooledBeam = IfcCooledBeam;

  var IfcCooledBeamType = /*#__PURE__*/function () {
    function IfcCooledBeamType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCooledBeamType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCooledBeamType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCooledBeamType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCooledBeamType;
  }();

  _exports.IfcCooledBeamType = IfcCooledBeamType;

  var IfcCoolingTower = /*#__PURE__*/function () {
    function IfcCoolingTower(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCoolingTower);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCoolingTower, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCoolingTower(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCoolingTower;
  }();

  _exports.IfcCoolingTower = IfcCoolingTower;

  var IfcCoolingTowerType = /*#__PURE__*/function () {
    function IfcCoolingTowerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCoolingTowerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCoolingTowerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCoolingTowerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCoolingTowerType;
  }();

  _exports.IfcCoolingTowerType = IfcCoolingTowerType;

  var IfcCoordinateOperation = /*#__PURE__*/function () {
    function IfcCoordinateOperation(expressID, type, SourceCRS, TargetCRS) {
      _classCallCheck(this, IfcCoordinateOperation);

      this.expressID = expressID;
      this.type = type;
      this.SourceCRS = SourceCRS;
      this.TargetCRS = TargetCRS;
    }

    _createClass(IfcCoordinateOperation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SourceCRS);
        ;
        args.push(this.TargetCRS);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SourceCRS = tape[ptr++];
        var TargetCRS = tape[ptr++];
        return new IfcCoordinateOperation(expressID, type, SourceCRS, TargetCRS);
      }
    }]);

    return IfcCoordinateOperation;
  }();

  _exports.IfcCoordinateOperation = IfcCoordinateOperation;

  var IfcCoordinateReferenceSystem = /*#__PURE__*/function () {
    function IfcCoordinateReferenceSystem(expressID, type, Name, Description, GeodeticDatum, VerticalDatum) {
      _classCallCheck(this, IfcCoordinateReferenceSystem);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.GeodeticDatum = GeodeticDatum;
      this.VerticalDatum = VerticalDatum;
    }

    _createClass(IfcCoordinateReferenceSystem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.GeodeticDatum);
        ;
        args.push(this.VerticalDatum);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var GeodeticDatum = tape[ptr++];
        var VerticalDatum = tape[ptr++];
        return new IfcCoordinateReferenceSystem(expressID, type, Name, Description, GeodeticDatum, VerticalDatum);
      }
    }]);

    return IfcCoordinateReferenceSystem;
  }();

  _exports.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;

  var IfcCostItem = /*#__PURE__*/function () {
    function IfcCostItem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {
      _classCallCheck(this, IfcCostItem);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcCostItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.CostValues);
        ;
        args.push(this.CostQuantities);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var CostValues = tape[ptr++];
        var CostQuantities = tape[ptr++];
        return new IfcCostItem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities);
      }
    }]);

    return IfcCostItem;
  }();

  _exports.IfcCostItem = IfcCostItem;

  var IfcCostSchedule = /*#__PURE__*/function () {
    function IfcCostSchedule(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {
      _classCallCheck(this, IfcCostSchedule);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcCostSchedule, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Status);
        ;
        args.push(this.SubmittedOn);
        ;
        args.push(this.UpdateDate);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Status = tape[ptr++];
        var SubmittedOn = tape[ptr++];
        var UpdateDate = tape[ptr++];
        return new IfcCostSchedule(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate);
      }
    }]);

    return IfcCostSchedule;
  }();

  _exports.IfcCostSchedule = IfcCostSchedule;

  var IfcCostValue = /*#__PURE__*/function () {
    function IfcCostValue(expressID, type, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {
      _classCallCheck(this, IfcCostValue);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcCostValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.AppliedValue);
        ;
        args.push(this.UnitBasis);
        ;
        args.push(this.ApplicableDate);
        ;
        args.push(this.FixedUntilDate);
        ;
        args.push(this.Category);
        ;
        args.push(this.Condition);
        ;
        args.push(this.ArithmeticOperator);
        ;
        args.push(this.Components);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var AppliedValue = tape[ptr++];
        var UnitBasis = tape[ptr++];
        var ApplicableDate = tape[ptr++];
        var FixedUntilDate = tape[ptr++];
        var Category = tape[ptr++];
        var Condition = tape[ptr++];
        var ArithmeticOperator = tape[ptr++];
        var Components = tape[ptr++];
        return new IfcCostValue(expressID, type, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);
      }
    }]);

    return IfcCostValue;
  }();

  _exports.IfcCostValue = IfcCostValue;

  var IfcCovering = /*#__PURE__*/function () {
    function IfcCovering(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCovering);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCovering, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCovering(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCovering;
  }();

  _exports.IfcCovering = IfcCovering;

  var IfcCoveringType = /*#__PURE__*/function () {
    function IfcCoveringType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCoveringType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCoveringType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCoveringType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCoveringType;
  }();

  _exports.IfcCoveringType = IfcCoveringType;

  var IfcCrewResource = /*#__PURE__*/function () {
    function IfcCrewResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcCrewResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcCrewResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCrewResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcCrewResource;
  }();

  _exports.IfcCrewResource = IfcCrewResource;

  var IfcCrewResourceType = /*#__PURE__*/function () {
    function IfcCrewResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcCrewResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcCrewResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCrewResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcCrewResourceType;
  }();

  _exports.IfcCrewResourceType = IfcCrewResourceType;

  var IfcCsgPrimitive3D = /*#__PURE__*/function () {
    function IfcCsgPrimitive3D(expressID, type, Position) {
      _classCallCheck(this, IfcCsgPrimitive3D);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
    }

    _createClass(IfcCsgPrimitive3D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        return new IfcCsgPrimitive3D(expressID, type, Position);
      }
    }]);

    return IfcCsgPrimitive3D;
  }();

  _exports.IfcCsgPrimitive3D = IfcCsgPrimitive3D;

  var IfcCsgSolid = /*#__PURE__*/function () {
    function IfcCsgSolid(expressID, type, TreeRootExpression) {
      _classCallCheck(this, IfcCsgSolid);

      this.expressID = expressID;
      this.type = type;
      this.TreeRootExpression = TreeRootExpression;
    }

    _createClass(IfcCsgSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TreeRootExpression);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TreeRootExpression = tape[ptr++];
        return new IfcCsgSolid(expressID, type, TreeRootExpression);
      }
    }]);

    return IfcCsgSolid;
  }();

  _exports.IfcCsgSolid = IfcCsgSolid;

  var IfcCurrencyRelationship = /*#__PURE__*/function () {
    function IfcCurrencyRelationship(expressID, type, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {
      _classCallCheck(this, IfcCurrencyRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingMonetaryUnit = RelatingMonetaryUnit;
      this.RelatedMonetaryUnit = RelatedMonetaryUnit;
      this.ExchangeRate = ExchangeRate;
      this.RateDateTime = RateDateTime;
      this.RateSource = RateSource;
    }

    _createClass(IfcCurrencyRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingMonetaryUnit);
        ;
        args.push(this.RelatedMonetaryUnit);
        ;
        args.push(this.ExchangeRate);
        ;
        args.push(this.RateDateTime);
        ;
        args.push(this.RateSource);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingMonetaryUnit = tape[ptr++];
        var RelatedMonetaryUnit = tape[ptr++];
        var ExchangeRate = tape[ptr++];
        var RateDateTime = tape[ptr++];
        var RateSource = tape[ptr++];
        return new IfcCurrencyRelationship(expressID, type, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource);
      }
    }]);

    return IfcCurrencyRelationship;
  }();

  _exports.IfcCurrencyRelationship = IfcCurrencyRelationship;

  var IfcCurtainWall = /*#__PURE__*/function () {
    function IfcCurtainWall(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcCurtainWall);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCurtainWall, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCurtainWall(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcCurtainWall;
  }();

  _exports.IfcCurtainWall = IfcCurtainWall;

  var IfcCurtainWallType = /*#__PURE__*/function () {
    function IfcCurtainWallType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcCurtainWallType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcCurtainWallType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcCurtainWallType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcCurtainWallType;
  }();

  _exports.IfcCurtainWallType = IfcCurtainWallType;

  var IfcCurve = /*#__PURE__*/function () {
    function IfcCurve(expressID, type) {
      _classCallCheck(this, IfcCurve);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcCurve(expressID, type);
      }
    }]);

    return IfcCurve;
  }();

  _exports.IfcCurve = IfcCurve;

  var IfcCurveBoundedPlane = /*#__PURE__*/function () {
    function IfcCurveBoundedPlane(expressID, type, BasisSurface, OuterBoundary, InnerBoundaries) {
      _classCallCheck(this, IfcCurveBoundedPlane);

      this.expressID = expressID;
      this.type = type;
      this.BasisSurface = BasisSurface;
      this.OuterBoundary = OuterBoundary;
      this.InnerBoundaries = InnerBoundaries;
    }

    _createClass(IfcCurveBoundedPlane, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisSurface);
        ;
        args.push(this.OuterBoundary);
        ;
        args.push(this.InnerBoundaries);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisSurface = tape[ptr++];
        var OuterBoundary = tape[ptr++];
        var InnerBoundaries = tape[ptr++];
        return new IfcCurveBoundedPlane(expressID, type, BasisSurface, OuterBoundary, InnerBoundaries);
      }
    }]);

    return IfcCurveBoundedPlane;
  }();

  _exports.IfcCurveBoundedPlane = IfcCurveBoundedPlane;

  var IfcCurveBoundedSurface = /*#__PURE__*/function () {
    function IfcCurveBoundedSurface(expressID, type, BasisSurface, Boundaries, ImplicitOuter) {
      _classCallCheck(this, IfcCurveBoundedSurface);

      this.expressID = expressID;
      this.type = type;
      this.BasisSurface = BasisSurface;
      this.Boundaries = Boundaries;
      this.ImplicitOuter = ImplicitOuter;
    }

    _createClass(IfcCurveBoundedSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisSurface);
        ;
        args.push(this.Boundaries);
        ;
        args.push(this.ImplicitOuter);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisSurface = tape[ptr++];
        var Boundaries = tape[ptr++];
        var ImplicitOuter = tape[ptr++];
        return new IfcCurveBoundedSurface(expressID, type, BasisSurface, Boundaries, ImplicitOuter);
      }
    }]);

    return IfcCurveBoundedSurface;
  }();

  _exports.IfcCurveBoundedSurface = IfcCurveBoundedSurface;

  var IfcCurveSegment2D = /*#__PURE__*/function () {
    function IfcCurveSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength) {
      _classCallCheck(this, IfcCurveSegment2D);

      this.expressID = expressID;
      this.type = type;
      this.StartPoint = StartPoint;
      this.StartDirection = StartDirection;
      this.SegmentLength = SegmentLength;
    }

    _createClass(IfcCurveSegment2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.StartPoint);
        ;
        args.push(this.StartDirection);
        ;
        args.push(this.SegmentLength);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var StartPoint = tape[ptr++];
        var StartDirection = tape[ptr++];
        var SegmentLength = tape[ptr++];
        return new IfcCurveSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength);
      }
    }]);

    return IfcCurveSegment2D;
  }();

  _exports.IfcCurveSegment2D = IfcCurveSegment2D;

  var IfcCurveStyle = /*#__PURE__*/function () {
    function IfcCurveStyle(expressID, type, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {
      _classCallCheck(this, IfcCurveStyle);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.CurveFont = CurveFont;
      this.CurveWidth = CurveWidth;
      this.CurveColour = CurveColour;
      this.ModelOrDraughting = ModelOrDraughting;
    }

    _createClass(IfcCurveStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.CurveFont);
        ;
        args.push(this.CurveWidth);
        ;
        args.push(this.CurveColour);
        ;
        args.push(this.ModelOrDraughting);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var CurveFont = tape[ptr++];
        var CurveWidth = tape[ptr++];
        var CurveColour = tape[ptr++];
        var ModelOrDraughting = tape[ptr++];
        return new IfcCurveStyle(expressID, type, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting);
      }
    }]);

    return IfcCurveStyle;
  }();

  _exports.IfcCurveStyle = IfcCurveStyle;

  var IfcCurveStyleFont = /*#__PURE__*/function () {
    function IfcCurveStyleFont(expressID, type, Name, PatternList) {
      _classCallCheck(this, IfcCurveStyleFont);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.PatternList = PatternList;
    }

    _createClass(IfcCurveStyleFont, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.PatternList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var PatternList = tape[ptr++];
        return new IfcCurveStyleFont(expressID, type, Name, PatternList);
      }
    }]);

    return IfcCurveStyleFont;
  }();

  _exports.IfcCurveStyleFont = IfcCurveStyleFont;

  var IfcCurveStyleFontAndScaling = /*#__PURE__*/function () {
    function IfcCurveStyleFontAndScaling(expressID, type, Name, CurveFont, CurveFontScaling) {
      _classCallCheck(this, IfcCurveStyleFontAndScaling);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.CurveFont = CurveFont;
      this.CurveFontScaling = CurveFontScaling;
    }

    _createClass(IfcCurveStyleFontAndScaling, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.CurveFont);
        ;
        args.push(this.CurveFontScaling);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var CurveFont = tape[ptr++];
        var CurveFontScaling = tape[ptr++];
        return new IfcCurveStyleFontAndScaling(expressID, type, Name, CurveFont, CurveFontScaling);
      }
    }]);

    return IfcCurveStyleFontAndScaling;
  }();

  _exports.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;

  var IfcCurveStyleFontPattern = /*#__PURE__*/function () {
    function IfcCurveStyleFontPattern(expressID, type, VisibleSegmentLength, InvisibleSegmentLength) {
      _classCallCheck(this, IfcCurveStyleFontPattern);

      this.expressID = expressID;
      this.type = type;
      this.VisibleSegmentLength = VisibleSegmentLength;
      this.InvisibleSegmentLength = InvisibleSegmentLength;
    }

    _createClass(IfcCurveStyleFontPattern, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.VisibleSegmentLength);
        ;
        args.push(this.InvisibleSegmentLength);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var VisibleSegmentLength = tape[ptr++];
        var InvisibleSegmentLength = tape[ptr++];
        return new IfcCurveStyleFontPattern(expressID, type, VisibleSegmentLength, InvisibleSegmentLength);
      }
    }]);

    return IfcCurveStyleFontPattern;
  }();

  _exports.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;

  var IfcCylindricalSurface = /*#__PURE__*/function () {
    function IfcCylindricalSurface(expressID, type, Position, Radius) {
      _classCallCheck(this, IfcCylindricalSurface);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.Radius = Radius;
    }

    _createClass(IfcCylindricalSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        return new IfcCylindricalSurface(expressID, type, Position, Radius);
      }
    }]);

    return IfcCylindricalSurface;
  }();

  _exports.IfcCylindricalSurface = IfcCylindricalSurface;

  var IfcDamper = /*#__PURE__*/function () {
    function IfcDamper(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcDamper);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDamper, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDamper(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcDamper;
  }();

  _exports.IfcDamper = IfcDamper;

  var IfcDamperType = /*#__PURE__*/function () {
    function IfcDamperType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcDamperType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDamperType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDamperType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcDamperType;
  }();

  _exports.IfcDamperType = IfcDamperType;

  var IfcDeepFoundation = /*#__PURE__*/function () {
    function IfcDeepFoundation(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcDeepFoundation);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcDeepFoundation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcDeepFoundation(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcDeepFoundation;
  }();

  _exports.IfcDeepFoundation = IfcDeepFoundation;

  var IfcDeepFoundationType = /*#__PURE__*/function () {
    function IfcDeepFoundationType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcDeepFoundationType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcDeepFoundationType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcDeepFoundationType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcDeepFoundationType;
  }();

  _exports.IfcDeepFoundationType = IfcDeepFoundationType;

  var IfcDerivedProfileDef = /*#__PURE__*/function () {
    function IfcDerivedProfileDef(expressID, type, ProfileType, ProfileName, ParentProfile, Operator, Label) {
      _classCallCheck(this, IfcDerivedProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.ParentProfile = ParentProfile;
      this.Operator = Operator;
      this.Label = Label;
    }

    _createClass(IfcDerivedProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.ParentProfile);
        ;
        args.push(this.Operator);
        ;
        args.push(this.Label);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var ParentProfile = tape[ptr++];
        var Operator = tape[ptr++];
        var Label = tape[ptr++];
        return new IfcDerivedProfileDef(expressID, type, ProfileType, ProfileName, ParentProfile, Operator, Label);
      }
    }]);

    return IfcDerivedProfileDef;
  }();

  _exports.IfcDerivedProfileDef = IfcDerivedProfileDef;

  var IfcDerivedUnit = /*#__PURE__*/function () {
    function IfcDerivedUnit(expressID, type, Elements, UnitType, UserDefinedType) {
      _classCallCheck(this, IfcDerivedUnit);

      this.expressID = expressID;
      this.type = type;
      this.Elements = Elements;
      this.UnitType = UnitType;
      this.UserDefinedType = UserDefinedType;
    }

    _createClass(IfcDerivedUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Elements);
        ;
        args.push(this.UnitType);
        ;
        args.push(this.UserDefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Elements = tape[ptr++];
        var UnitType = tape[ptr++];
        var UserDefinedType = tape[ptr++];
        return new IfcDerivedUnit(expressID, type, Elements, UnitType, UserDefinedType);
      }
    }]);

    return IfcDerivedUnit;
  }();

  _exports.IfcDerivedUnit = IfcDerivedUnit;

  var IfcDerivedUnitElement = /*#__PURE__*/function () {
    function IfcDerivedUnitElement(expressID, type, Unit, Exponent) {
      _classCallCheck(this, IfcDerivedUnitElement);

      this.expressID = expressID;
      this.type = type;
      this.Unit = Unit;
      this.Exponent = Exponent;
    }

    _createClass(IfcDerivedUnitElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Unit);
        ;
        args.push(this.Exponent);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Unit = tape[ptr++];
        var Exponent = tape[ptr++];
        return new IfcDerivedUnitElement(expressID, type, Unit, Exponent);
      }
    }]);

    return IfcDerivedUnitElement;
  }();

  _exports.IfcDerivedUnitElement = IfcDerivedUnitElement;

  var IfcDimensionalExponents = /*#__PURE__*/function () {
    function IfcDimensionalExponents(expressID, type, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {
      _classCallCheck(this, IfcDimensionalExponents);

      this.expressID = expressID;
      this.type = type;
      this.LengthExponent = LengthExponent;
      this.MassExponent = MassExponent;
      this.TimeExponent = TimeExponent;
      this.ElectricCurrentExponent = ElectricCurrentExponent;
      this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;
      this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;
      this.LuminousIntensityExponent = LuminousIntensityExponent;
    }

    _createClass(IfcDimensionalExponents, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.LengthExponent);
        ;
        args.push(this.MassExponent);
        ;
        args.push(this.TimeExponent);
        ;
        args.push(this.ElectricCurrentExponent);
        ;
        args.push(this.ThermodynamicTemperatureExponent);
        ;
        args.push(this.AmountOfSubstanceExponent);
        ;
        args.push(this.LuminousIntensityExponent);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var LengthExponent = tape[ptr++];
        var MassExponent = tape[ptr++];
        var TimeExponent = tape[ptr++];
        var ElectricCurrentExponent = tape[ptr++];
        var ThermodynamicTemperatureExponent = tape[ptr++];
        var AmountOfSubstanceExponent = tape[ptr++];
        var LuminousIntensityExponent = tape[ptr++];
        return new IfcDimensionalExponents(expressID, type, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent);
      }
    }]);

    return IfcDimensionalExponents;
  }();

  _exports.IfcDimensionalExponents = IfcDimensionalExponents;

  var IfcDirection = /*#__PURE__*/function () {
    function IfcDirection(expressID, type, DirectionRatios) {
      _classCallCheck(this, IfcDirection);

      this.expressID = expressID;
      this.type = type;
      this.DirectionRatios = DirectionRatios;
    }

    _createClass(IfcDirection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.DirectionRatios);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var DirectionRatios = tape[ptr++];
        return new IfcDirection(expressID, type, DirectionRatios);
      }
    }]);

    return IfcDirection;
  }();

  _exports.IfcDirection = IfcDirection;

  var IfcDiscreteAccessory = /*#__PURE__*/function () {
    function IfcDiscreteAccessory(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcDiscreteAccessory);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDiscreteAccessory, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDiscreteAccessory(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcDiscreteAccessory;
  }();

  _exports.IfcDiscreteAccessory = IfcDiscreteAccessory;

  var IfcDiscreteAccessoryType = /*#__PURE__*/function () {
    function IfcDiscreteAccessoryType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcDiscreteAccessoryType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDiscreteAccessoryType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDiscreteAccessoryType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcDiscreteAccessoryType;
  }();

  _exports.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;

  var IfcDistanceExpression = /*#__PURE__*/function () {
    function IfcDistanceExpression(expressID, type, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, AlongHorizontal) {
      _classCallCheck(this, IfcDistanceExpression);

      this.expressID = expressID;
      this.type = type;
      this.DistanceAlong = DistanceAlong;
      this.OffsetLateral = OffsetLateral;
      this.OffsetVertical = OffsetVertical;
      this.OffsetLongitudinal = OffsetLongitudinal;
      this.AlongHorizontal = AlongHorizontal;
    }

    _createClass(IfcDistanceExpression, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.DistanceAlong);
        ;
        args.push(this.OffsetLateral);
        ;
        args.push(this.OffsetVertical);
        ;
        args.push(this.OffsetLongitudinal);
        ;
        args.push(this.AlongHorizontal);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var DistanceAlong = tape[ptr++];
        var OffsetLateral = tape[ptr++];
        var OffsetVertical = tape[ptr++];
        var OffsetLongitudinal = tape[ptr++];
        var AlongHorizontal = tape[ptr++];
        return new IfcDistanceExpression(expressID, type, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, AlongHorizontal);
      }
    }]);

    return IfcDistanceExpression;
  }();

  _exports.IfcDistanceExpression = IfcDistanceExpression;

  var IfcDistributionChamberElement = /*#__PURE__*/function () {
    function IfcDistributionChamberElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcDistributionChamberElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDistributionChamberElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDistributionChamberElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcDistributionChamberElement;
  }();

  _exports.IfcDistributionChamberElement = IfcDistributionChamberElement;

  var IfcDistributionChamberElementType = /*#__PURE__*/function () {
    function IfcDistributionChamberElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcDistributionChamberElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDistributionChamberElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDistributionChamberElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcDistributionChamberElementType;
  }();

  _exports.IfcDistributionChamberElementType = IfcDistributionChamberElementType;

  var IfcDistributionCircuit = /*#__PURE__*/function () {
    function IfcDistributionCircuit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {
      _classCallCheck(this, IfcDistributionCircuit);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.LongName = LongName;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDistributionCircuit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.LongName);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var LongName = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDistributionCircuit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);
      }
    }]);

    return IfcDistributionCircuit;
  }();

  _exports.IfcDistributionCircuit = IfcDistributionCircuit;

  var IfcDistributionControlElement = /*#__PURE__*/function () {
    function IfcDistributionControlElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcDistributionControlElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcDistributionControlElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcDistributionControlElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcDistributionControlElement;
  }();

  _exports.IfcDistributionControlElement = IfcDistributionControlElement;

  var IfcDistributionControlElementType = /*#__PURE__*/function () {
    function IfcDistributionControlElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcDistributionControlElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcDistributionControlElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcDistributionControlElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcDistributionControlElementType;
  }();

  _exports.IfcDistributionControlElementType = IfcDistributionControlElementType;

  var IfcDistributionElement = /*#__PURE__*/function () {
    function IfcDistributionElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcDistributionElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcDistributionElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcDistributionElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcDistributionElement;
  }();

  _exports.IfcDistributionElement = IfcDistributionElement;

  var IfcDistributionElementType = /*#__PURE__*/function () {
    function IfcDistributionElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcDistributionElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcDistributionElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcDistributionElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcDistributionElementType;
  }();

  _exports.IfcDistributionElementType = IfcDistributionElementType;

  var IfcDistributionFlowElement = /*#__PURE__*/function () {
    function IfcDistributionFlowElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcDistributionFlowElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcDistributionFlowElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcDistributionFlowElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcDistributionFlowElement;
  }();

  _exports.IfcDistributionFlowElement = IfcDistributionFlowElement;

  var IfcDistributionFlowElementType = /*#__PURE__*/function () {
    function IfcDistributionFlowElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcDistributionFlowElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcDistributionFlowElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcDistributionFlowElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcDistributionFlowElementType;
  }();

  _exports.IfcDistributionFlowElementType = IfcDistributionFlowElementType;

  var IfcDistributionPort = /*#__PURE__*/function () {
    function IfcDistributionPort(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {
      _classCallCheck(this, IfcDistributionPort);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcDistributionPort, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.FlowDirection);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.SystemType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var FlowDirection = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var SystemType = tape[ptr++];
        return new IfcDistributionPort(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType);
      }
    }]);

    return IfcDistributionPort;
  }();

  _exports.IfcDistributionPort = IfcDistributionPort;

  var IfcDistributionSystem = /*#__PURE__*/function () {
    function IfcDistributionSystem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {
      _classCallCheck(this, IfcDistributionSystem);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.LongName = LongName;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDistributionSystem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.LongName);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var LongName = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDistributionSystem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);
      }
    }]);

    return IfcDistributionSystem;
  }();

  _exports.IfcDistributionSystem = IfcDistributionSystem;

  var IfcDocumentInformation = /*#__PURE__*/function () {
    function IfcDocumentInformation(expressID, type, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {
      _classCallCheck(this, IfcDocumentInformation);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcDocumentInformation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Location);
        ;
        args.push(this.Purpose);
        ;
        args.push(this.IntendedUse);
        ;
        args.push(this.Scope);
        ;
        args.push(this.Revision);
        ;
        args.push(this.DocumentOwner);
        ;
        args.push(this.Editors);
        ;
        args.push(this.CreationTime);
        ;
        args.push(this.LastRevisionTime);
        ;
        args.push(this.ElectronicFormat);
        ;
        args.push(this.ValidFrom);
        ;
        args.push(this.ValidUntil);
        ;
        args.push(this.Confidentiality);
        ;
        args.push(this.Status);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Location = tape[ptr++];
        var Purpose = tape[ptr++];
        var IntendedUse = tape[ptr++];
        var Scope = tape[ptr++];
        var Revision = tape[ptr++];
        var DocumentOwner = tape[ptr++];
        var Editors = tape[ptr++];
        var CreationTime = tape[ptr++];
        var LastRevisionTime = tape[ptr++];
        var ElectronicFormat = tape[ptr++];
        var ValidFrom = tape[ptr++];
        var ValidUntil = tape[ptr++];
        var Confidentiality = tape[ptr++];
        var Status = tape[ptr++];
        return new IfcDocumentInformation(expressID, type, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status);
      }
    }]);

    return IfcDocumentInformation;
  }();

  _exports.IfcDocumentInformation = IfcDocumentInformation;

  var IfcDocumentInformationRelationship = /*#__PURE__*/function () {
    function IfcDocumentInformationRelationship(expressID, type, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {
      _classCallCheck(this, IfcDocumentInformationRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingDocument = RelatingDocument;
      this.RelatedDocuments = RelatedDocuments;
      this.RelationshipType = RelationshipType;
    }

    _createClass(IfcDocumentInformationRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingDocument);
        ;
        args.push(this.RelatedDocuments);
        ;
        args.push(this.RelationshipType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingDocument = tape[ptr++];
        var RelatedDocuments = tape[ptr++];
        var RelationshipType = tape[ptr++];
        return new IfcDocumentInformationRelationship(expressID, type, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType);
      }
    }]);

    return IfcDocumentInformationRelationship;
  }();

  _exports.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;

  var IfcDocumentReference = /*#__PURE__*/function () {
    function IfcDocumentReference(expressID, type, Location, Identification, Name, Description, ReferencedDocument) {
      _classCallCheck(this, IfcDocumentReference);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
      this.Description = Description;
      this.ReferencedDocument = ReferencedDocument;
    }

    _createClass(IfcDocumentReference, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ReferencedDocument);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ReferencedDocument = tape[ptr++];
        return new IfcDocumentReference(expressID, type, Location, Identification, Name, Description, ReferencedDocument);
      }
    }]);

    return IfcDocumentReference;
  }();

  _exports.IfcDocumentReference = IfcDocumentReference;

  var IfcDoor = /*#__PURE__*/function () {
    function IfcDoor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {
      _classCallCheck(this, IfcDoor);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcDoor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.OverallHeight);
        ;
        args.push(this.OverallWidth);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.UserDefinedOperationType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var OverallHeight = tape[ptr++];
        var OverallWidth = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var OperationType = tape[ptr++];
        var UserDefinedOperationType = tape[ptr++];
        return new IfcDoor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType);
      }
    }]);

    return IfcDoor;
  }();

  _exports.IfcDoor = IfcDoor;

  var IfcDoorLiningProperties = /*#__PURE__*/function () {
    function IfcDoorLiningProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {
      _classCallCheck(this, IfcDoorLiningProperties);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcDoorLiningProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.LiningDepth);
        ;
        args.push(this.LiningThickness);
        ;
        args.push(this.ThresholdDepth);
        ;
        args.push(this.ThresholdThickness);
        ;
        args.push(this.TransomThickness);
        ;
        args.push(this.TransomOffset);
        ;
        args.push(this.LiningOffset);
        ;
        args.push(this.ThresholdOffset);
        ;
        args.push(this.CasingThickness);
        ;
        args.push(this.CasingDepth);
        ;
        args.push(this.ShapeAspectStyle);
        ;
        args.push(this.LiningToPanelOffsetX);
        ;
        args.push(this.LiningToPanelOffsetY);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var LiningDepth = tape[ptr++];
        var LiningThickness = tape[ptr++];
        var ThresholdDepth = tape[ptr++];
        var ThresholdThickness = tape[ptr++];
        var TransomThickness = tape[ptr++];
        var TransomOffset = tape[ptr++];
        var LiningOffset = tape[ptr++];
        var ThresholdOffset = tape[ptr++];
        var CasingThickness = tape[ptr++];
        var CasingDepth = tape[ptr++];
        var ShapeAspectStyle = tape[ptr++];
        var LiningToPanelOffsetX = tape[ptr++];
        var LiningToPanelOffsetY = tape[ptr++];
        return new IfcDoorLiningProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY);
      }
    }]);

    return IfcDoorLiningProperties;
  }();

  _exports.IfcDoorLiningProperties = IfcDoorLiningProperties;

  var IfcDoorPanelProperties = /*#__PURE__*/function () {
    function IfcDoorPanelProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {
      _classCallCheck(this, IfcDoorPanelProperties);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcDoorPanelProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.PanelDepth);
        ;
        args.push(this.PanelOperation);
        ;
        args.push(this.PanelWidth);
        ;
        args.push(this.PanelPosition);
        ;
        args.push(this.ShapeAspectStyle);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var PanelDepth = tape[ptr++];
        var PanelOperation = tape[ptr++];
        var PanelWidth = tape[ptr++];
        var PanelPosition = tape[ptr++];
        var ShapeAspectStyle = tape[ptr++];
        return new IfcDoorPanelProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle);
      }
    }]);

    return IfcDoorPanelProperties;
  }();

  _exports.IfcDoorPanelProperties = IfcDoorPanelProperties;

  var IfcDoorStandardCase = /*#__PURE__*/function () {
    function IfcDoorStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {
      _classCallCheck(this, IfcDoorStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcDoorStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.OverallHeight);
        ;
        args.push(this.OverallWidth);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.UserDefinedOperationType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var OverallHeight = tape[ptr++];
        var OverallWidth = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var OperationType = tape[ptr++];
        var UserDefinedOperationType = tape[ptr++];
        return new IfcDoorStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType);
      }
    }]);

    return IfcDoorStandardCase;
  }();

  _exports.IfcDoorStandardCase = IfcDoorStandardCase;

  var IfcDoorStyle = /*#__PURE__*/function () {
    function IfcDoorStyle(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {
      _classCallCheck(this, IfcDoorStyle);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcDoorStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.ConstructionType);
        ;
        args.push(this.ParameterTakesPrecedence);
        ;
        args.push(this.Sizeable);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var OperationType = tape[ptr++];
        var ConstructionType = tape[ptr++];
        var ParameterTakesPrecedence = tape[ptr++];
        var Sizeable = tape[ptr++];
        return new IfcDoorStyle(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable);
      }
    }]);

    return IfcDoorStyle;
  }();

  _exports.IfcDoorStyle = IfcDoorStyle;

  var IfcDoorType = /*#__PURE__*/function () {
    function IfcDoorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {
      _classCallCheck(this, IfcDoorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcDoorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.ParameterTakesPrecedence);
        ;
        args.push(this.UserDefinedOperationType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var OperationType = tape[ptr++];
        var ParameterTakesPrecedence = tape[ptr++];
        var UserDefinedOperationType = tape[ptr++];
        return new IfcDoorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType);
      }
    }]);

    return IfcDoorType;
  }();

  _exports.IfcDoorType = IfcDoorType;

  var IfcDraughtingPreDefinedColour = /*#__PURE__*/function () {
    function IfcDraughtingPreDefinedColour(expressID, type, Name) {
      _classCallCheck(this, IfcDraughtingPreDefinedColour);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcDraughtingPreDefinedColour, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcDraughtingPreDefinedColour(expressID, type, Name);
      }
    }]);

    return IfcDraughtingPreDefinedColour;
  }();

  _exports.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;

  var IfcDraughtingPreDefinedCurveFont = /*#__PURE__*/function () {
    function IfcDraughtingPreDefinedCurveFont(expressID, type, Name) {
      _classCallCheck(this, IfcDraughtingPreDefinedCurveFont);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcDraughtingPreDefinedCurveFont, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcDraughtingPreDefinedCurveFont(expressID, type, Name);
      }
    }]);

    return IfcDraughtingPreDefinedCurveFont;
  }();

  _exports.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;

  var IfcDuctFitting = /*#__PURE__*/function () {
    function IfcDuctFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcDuctFitting);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDuctFitting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDuctFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcDuctFitting;
  }();

  _exports.IfcDuctFitting = IfcDuctFitting;

  var IfcDuctFittingType = /*#__PURE__*/function () {
    function IfcDuctFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcDuctFittingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDuctFittingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDuctFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcDuctFittingType;
  }();

  _exports.IfcDuctFittingType = IfcDuctFittingType;

  var IfcDuctSegment = /*#__PURE__*/function () {
    function IfcDuctSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcDuctSegment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDuctSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDuctSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcDuctSegment;
  }();

  _exports.IfcDuctSegment = IfcDuctSegment;

  var IfcDuctSegmentType = /*#__PURE__*/function () {
    function IfcDuctSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcDuctSegmentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDuctSegmentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDuctSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcDuctSegmentType;
  }();

  _exports.IfcDuctSegmentType = IfcDuctSegmentType;

  var IfcDuctSilencer = /*#__PURE__*/function () {
    function IfcDuctSilencer(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcDuctSilencer);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDuctSilencer, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDuctSilencer(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcDuctSilencer;
  }();

  _exports.IfcDuctSilencer = IfcDuctSilencer;

  var IfcDuctSilencerType = /*#__PURE__*/function () {
    function IfcDuctSilencerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcDuctSilencerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcDuctSilencerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcDuctSilencerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcDuctSilencerType;
  }();

  _exports.IfcDuctSilencerType = IfcDuctSilencerType;

  var IfcEdge = /*#__PURE__*/function () {
    function IfcEdge(expressID, type, EdgeStart, EdgeEnd) {
      _classCallCheck(this, IfcEdge);

      this.expressID = expressID;
      this.type = type;
      this.EdgeStart = EdgeStart;
      this.EdgeEnd = EdgeEnd;
    }

    _createClass(IfcEdge, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.EdgeStart);
        ;
        args.push(this.EdgeEnd);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var EdgeStart = tape[ptr++];
        var EdgeEnd = tape[ptr++];
        return new IfcEdge(expressID, type, EdgeStart, EdgeEnd);
      }
    }]);

    return IfcEdge;
  }();

  _exports.IfcEdge = IfcEdge;

  var IfcEdgeCurve = /*#__PURE__*/function () {
    function IfcEdgeCurve(expressID, type, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {
      _classCallCheck(this, IfcEdgeCurve);

      this.expressID = expressID;
      this.type = type;
      this.EdgeStart = EdgeStart;
      this.EdgeEnd = EdgeEnd;
      this.EdgeGeometry = EdgeGeometry;
      this.SameSense = SameSense;
    }

    _createClass(IfcEdgeCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.EdgeStart);
        ;
        args.push(this.EdgeEnd);
        ;
        args.push(this.EdgeGeometry);
        ;
        args.push(this.SameSense);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var EdgeStart = tape[ptr++];
        var EdgeEnd = tape[ptr++];
        var EdgeGeometry = tape[ptr++];
        var SameSense = tape[ptr++];
        return new IfcEdgeCurve(expressID, type, EdgeStart, EdgeEnd, EdgeGeometry, SameSense);
      }
    }]);

    return IfcEdgeCurve;
  }();

  _exports.IfcEdgeCurve = IfcEdgeCurve;

  var IfcEdgeLoop = /*#__PURE__*/function () {
    function IfcEdgeLoop(expressID, type, EdgeList) {
      _classCallCheck(this, IfcEdgeLoop);

      this.expressID = expressID;
      this.type = type;
      this.EdgeList = EdgeList;
    }

    _createClass(IfcEdgeLoop, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.EdgeList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var EdgeList = tape[ptr++];
        return new IfcEdgeLoop(expressID, type, EdgeList);
      }
    }]);

    return IfcEdgeLoop;
  }();

  _exports.IfcEdgeLoop = IfcEdgeLoop;

  var IfcElectricAppliance = /*#__PURE__*/function () {
    function IfcElectricAppliance(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcElectricAppliance);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricAppliance, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricAppliance(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcElectricAppliance;
  }();

  _exports.IfcElectricAppliance = IfcElectricAppliance;

  var IfcElectricApplianceType = /*#__PURE__*/function () {
    function IfcElectricApplianceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElectricApplianceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricApplianceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricApplianceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElectricApplianceType;
  }();

  _exports.IfcElectricApplianceType = IfcElectricApplianceType;

  var IfcElectricDistributionBoard = /*#__PURE__*/function () {
    function IfcElectricDistributionBoard(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcElectricDistributionBoard);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricDistributionBoard, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricDistributionBoard(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcElectricDistributionBoard;
  }();

  _exports.IfcElectricDistributionBoard = IfcElectricDistributionBoard;

  var IfcElectricDistributionBoardType = /*#__PURE__*/function () {
    function IfcElectricDistributionBoardType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElectricDistributionBoardType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricDistributionBoardType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricDistributionBoardType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElectricDistributionBoardType;
  }();

  _exports.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;

  var IfcElectricFlowStorageDevice = /*#__PURE__*/function () {
    function IfcElectricFlowStorageDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcElectricFlowStorageDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricFlowStorageDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricFlowStorageDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcElectricFlowStorageDevice;
  }();

  _exports.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;

  var IfcElectricFlowStorageDeviceType = /*#__PURE__*/function () {
    function IfcElectricFlowStorageDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElectricFlowStorageDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricFlowStorageDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricFlowStorageDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElectricFlowStorageDeviceType;
  }();

  _exports.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;

  var IfcElectricGenerator = /*#__PURE__*/function () {
    function IfcElectricGenerator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcElectricGenerator);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricGenerator, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricGenerator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcElectricGenerator;
  }();

  _exports.IfcElectricGenerator = IfcElectricGenerator;

  var IfcElectricGeneratorType = /*#__PURE__*/function () {
    function IfcElectricGeneratorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElectricGeneratorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricGeneratorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricGeneratorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElectricGeneratorType;
  }();

  _exports.IfcElectricGeneratorType = IfcElectricGeneratorType;

  var IfcElectricMotor = /*#__PURE__*/function () {
    function IfcElectricMotor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcElectricMotor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricMotor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricMotor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcElectricMotor;
  }();

  _exports.IfcElectricMotor = IfcElectricMotor;

  var IfcElectricMotorType = /*#__PURE__*/function () {
    function IfcElectricMotorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElectricMotorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricMotorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricMotorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElectricMotorType;
  }();

  _exports.IfcElectricMotorType = IfcElectricMotorType;

  var IfcElectricTimeControl = /*#__PURE__*/function () {
    function IfcElectricTimeControl(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcElectricTimeControl);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricTimeControl, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricTimeControl(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcElectricTimeControl;
  }();

  _exports.IfcElectricTimeControl = IfcElectricTimeControl;

  var IfcElectricTimeControlType = /*#__PURE__*/function () {
    function IfcElectricTimeControlType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElectricTimeControlType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElectricTimeControlType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElectricTimeControlType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElectricTimeControlType;
  }();

  _exports.IfcElectricTimeControlType = IfcElectricTimeControlType;

  var IfcElement = /*#__PURE__*/function () {
    function IfcElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcElement;
  }();

  _exports.IfcElement = IfcElement;

  var IfcElementAssembly = /*#__PURE__*/function () {
    function IfcElementAssembly(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {
      _classCallCheck(this, IfcElementAssembly);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcElementAssembly, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.AssemblyPlace);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var AssemblyPlace = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElementAssembly(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType);
      }
    }]);

    return IfcElementAssembly;
  }();

  _exports.IfcElementAssembly = IfcElementAssembly;

  var IfcElementAssemblyType = /*#__PURE__*/function () {
    function IfcElementAssemblyType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcElementAssemblyType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcElementAssemblyType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcElementAssemblyType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcElementAssemblyType;
  }();

  _exports.IfcElementAssemblyType = IfcElementAssemblyType;

  var IfcElementComponent = /*#__PURE__*/function () {
    function IfcElementComponent(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcElementComponent);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcElementComponent, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcElementComponent(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcElementComponent;
  }();

  _exports.IfcElementComponent = IfcElementComponent;

  var IfcElementComponentType = /*#__PURE__*/function () {
    function IfcElementComponentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcElementComponentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcElementComponentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcElementComponentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcElementComponentType;
  }();

  _exports.IfcElementComponentType = IfcElementComponentType;

  var IfcElementQuantity = /*#__PURE__*/function () {
    function IfcElementQuantity(expressID, type, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {
      _classCallCheck(this, IfcElementQuantity);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.MethodOfMeasurement = MethodOfMeasurement;
      this.Quantities = Quantities;
    }

    _createClass(IfcElementQuantity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.MethodOfMeasurement);
        ;
        args.push(this.Quantities);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var MethodOfMeasurement = tape[ptr++];
        var Quantities = tape[ptr++];
        return new IfcElementQuantity(expressID, type, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities);
      }
    }]);

    return IfcElementQuantity;
  }();

  _exports.IfcElementQuantity = IfcElementQuantity;

  var IfcElementType = /*#__PURE__*/function () {
    function IfcElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcElementType;
  }();

  _exports.IfcElementType = IfcElementType;

  var IfcElementarySurface = /*#__PURE__*/function () {
    function IfcElementarySurface(expressID, type, Position) {
      _classCallCheck(this, IfcElementarySurface);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
    }

    _createClass(IfcElementarySurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        return new IfcElementarySurface(expressID, type, Position);
      }
    }]);

    return IfcElementarySurface;
  }();

  _exports.IfcElementarySurface = IfcElementarySurface;

  var IfcEllipse = /*#__PURE__*/function () {
    function IfcEllipse(expressID, type, Position, SemiAxis1, SemiAxis2) {
      _classCallCheck(this, IfcEllipse);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.SemiAxis1 = SemiAxis1;
      this.SemiAxis2 = SemiAxis2;
    }

    _createClass(IfcEllipse, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.SemiAxis1);
        ;
        args.push(this.SemiAxis2);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var SemiAxis1 = tape[ptr++];
        var SemiAxis2 = tape[ptr++];
        return new IfcEllipse(expressID, type, Position, SemiAxis1, SemiAxis2);
      }
    }]);

    return IfcEllipse;
  }();

  _exports.IfcEllipse = IfcEllipse;

  var IfcEllipseProfileDef = /*#__PURE__*/function () {
    function IfcEllipseProfileDef(expressID, type, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {
      _classCallCheck(this, IfcEllipseProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.SemiAxis1 = SemiAxis1;
      this.SemiAxis2 = SemiAxis2;
    }

    _createClass(IfcEllipseProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.SemiAxis1);
        ;
        args.push(this.SemiAxis2);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var SemiAxis1 = tape[ptr++];
        var SemiAxis2 = tape[ptr++];
        return new IfcEllipseProfileDef(expressID, type, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2);
      }
    }]);

    return IfcEllipseProfileDef;
  }();

  _exports.IfcEllipseProfileDef = IfcEllipseProfileDef;

  var IfcEnergyConversionDevice = /*#__PURE__*/function () {
    function IfcEnergyConversionDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcEnergyConversionDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcEnergyConversionDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcEnergyConversionDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcEnergyConversionDevice;
  }();

  _exports.IfcEnergyConversionDevice = IfcEnergyConversionDevice;

  var IfcEnergyConversionDeviceType = /*#__PURE__*/function () {
    function IfcEnergyConversionDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcEnergyConversionDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcEnergyConversionDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcEnergyConversionDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcEnergyConversionDeviceType;
  }();

  _exports.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;

  var IfcEngine = /*#__PURE__*/function () {
    function IfcEngine(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcEngine);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcEngine, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcEngine(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcEngine;
  }();

  _exports.IfcEngine = IfcEngine;

  var IfcEngineType = /*#__PURE__*/function () {
    function IfcEngineType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcEngineType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcEngineType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcEngineType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcEngineType;
  }();

  _exports.IfcEngineType = IfcEngineType;

  var IfcEvaporativeCooler = /*#__PURE__*/function () {
    function IfcEvaporativeCooler(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcEvaporativeCooler);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcEvaporativeCooler, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcEvaporativeCooler(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcEvaporativeCooler;
  }();

  _exports.IfcEvaporativeCooler = IfcEvaporativeCooler;

  var IfcEvaporativeCoolerType = /*#__PURE__*/function () {
    function IfcEvaporativeCoolerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcEvaporativeCoolerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcEvaporativeCoolerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcEvaporativeCoolerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcEvaporativeCoolerType;
  }();

  _exports.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;

  var IfcEvaporator = /*#__PURE__*/function () {
    function IfcEvaporator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcEvaporator);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcEvaporator, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcEvaporator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcEvaporator;
  }();

  _exports.IfcEvaporator = IfcEvaporator;

  var IfcEvaporatorType = /*#__PURE__*/function () {
    function IfcEvaporatorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcEvaporatorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcEvaporatorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcEvaporatorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcEvaporatorType;
  }();

  _exports.IfcEvaporatorType = IfcEvaporatorType;

  var IfcEvent = /*#__PURE__*/function () {
    function IfcEvent(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {
      _classCallCheck(this, IfcEvent);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcEvent, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.EventTriggerType);
        ;
        args.push(this.UserDefinedEventTriggerType);
        ;
        args.push(this.EventOccurenceTime);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var EventTriggerType = tape[ptr++];
        var UserDefinedEventTriggerType = tape[ptr++];
        var EventOccurenceTime = tape[ptr++];
        return new IfcEvent(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime);
      }
    }]);

    return IfcEvent;
  }();

  _exports.IfcEvent = IfcEvent;

  var IfcEventTime = /*#__PURE__*/function () {
    function IfcEventTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {
      _classCallCheck(this, IfcEventTime);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DataOrigin = DataOrigin;
      this.UserDefinedDataOrigin = UserDefinedDataOrigin;
      this.ActualDate = ActualDate;
      this.EarlyDate = EarlyDate;
      this.LateDate = LateDate;
      this.ScheduleDate = ScheduleDate;
    }

    _createClass(IfcEventTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.ActualDate);
        ;
        args.push(this.EarlyDate);
        ;
        args.push(this.LateDate);
        ;
        args.push(this.ScheduleDate);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var ActualDate = tape[ptr++];
        var EarlyDate = tape[ptr++];
        var LateDate = tape[ptr++];
        var ScheduleDate = tape[ptr++];
        return new IfcEventTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate);
      }
    }]);

    return IfcEventTime;
  }();

  _exports.IfcEventTime = IfcEventTime;

  var IfcEventType = /*#__PURE__*/function () {
    function IfcEventType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {
      _classCallCheck(this, IfcEventType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcEventType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ProcessType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.EventTriggerType);
        ;
        args.push(this.UserDefinedEventTriggerType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ProcessType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var EventTriggerType = tape[ptr++];
        var UserDefinedEventTriggerType = tape[ptr++];
        return new IfcEventType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType);
      }
    }]);

    return IfcEventType;
  }();

  _exports.IfcEventType = IfcEventType;

  var IfcExtendedProperties = /*#__PURE__*/function () {
    function IfcExtendedProperties(expressID, type, Name, Description, Properties) {
      _classCallCheck(this, IfcExtendedProperties);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Properties = Properties;
    }

    _createClass(IfcExtendedProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Properties);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Properties = tape[ptr++];
        return new IfcExtendedProperties(expressID, type, Name, Description, Properties);
      }
    }]);

    return IfcExtendedProperties;
  }();

  _exports.IfcExtendedProperties = IfcExtendedProperties;

  var IfcExternalInformation = /*#__PURE__*/function () {
    function IfcExternalInformation(expressID, type) {
      _classCallCheck(this, IfcExternalInformation);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcExternalInformation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcExternalInformation(expressID, type);
      }
    }]);

    return IfcExternalInformation;
  }();

  _exports.IfcExternalInformation = IfcExternalInformation;

  var IfcExternalReference = /*#__PURE__*/function () {
    function IfcExternalReference(expressID, type, Location, Identification, Name) {
      _classCallCheck(this, IfcExternalReference);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
    }

    _createClass(IfcExternalReference, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcExternalReference(expressID, type, Location, Identification, Name);
      }
    }]);

    return IfcExternalReference;
  }();

  _exports.IfcExternalReference = IfcExternalReference;

  var IfcExternalReferenceRelationship = /*#__PURE__*/function () {
    function IfcExternalReferenceRelationship(expressID, type, Name, Description, RelatingReference, RelatedResourceObjects) {
      _classCallCheck(this, IfcExternalReferenceRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingReference = RelatingReference;
      this.RelatedResourceObjects = RelatedResourceObjects;
    }

    _createClass(IfcExternalReferenceRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingReference);
        ;
        args.push(this.RelatedResourceObjects);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingReference = tape[ptr++];
        var RelatedResourceObjects = tape[ptr++];
        return new IfcExternalReferenceRelationship(expressID, type, Name, Description, RelatingReference, RelatedResourceObjects);
      }
    }]);

    return IfcExternalReferenceRelationship;
  }();

  _exports.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;

  var IfcExternalSpatialElement = /*#__PURE__*/function () {
    function IfcExternalSpatialElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {
      _classCallCheck(this, IfcExternalSpatialElement);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcExternalSpatialElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcExternalSpatialElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType);
      }
    }]);

    return IfcExternalSpatialElement;
  }();

  _exports.IfcExternalSpatialElement = IfcExternalSpatialElement;

  var IfcExternalSpatialStructureElement = /*#__PURE__*/function () {
    function IfcExternalSpatialStructureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {
      _classCallCheck(this, IfcExternalSpatialStructureElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.LongName = LongName;
    }

    _createClass(IfcExternalSpatialStructureElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        return new IfcExternalSpatialStructureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
      }
    }]);

    return IfcExternalSpatialStructureElement;
  }();

  _exports.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;

  var IfcExternallyDefinedHatchStyle = /*#__PURE__*/function () {
    function IfcExternallyDefinedHatchStyle(expressID, type, Location, Identification, Name) {
      _classCallCheck(this, IfcExternallyDefinedHatchStyle);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
    }

    _createClass(IfcExternallyDefinedHatchStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcExternallyDefinedHatchStyle(expressID, type, Location, Identification, Name);
      }
    }]);

    return IfcExternallyDefinedHatchStyle;
  }();

  _exports.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;

  var IfcExternallyDefinedSurfaceStyle = /*#__PURE__*/function () {
    function IfcExternallyDefinedSurfaceStyle(expressID, type, Location, Identification, Name) {
      _classCallCheck(this, IfcExternallyDefinedSurfaceStyle);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
    }

    _createClass(IfcExternallyDefinedSurfaceStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcExternallyDefinedSurfaceStyle(expressID, type, Location, Identification, Name);
      }
    }]);

    return IfcExternallyDefinedSurfaceStyle;
  }();

  _exports.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;

  var IfcExternallyDefinedTextFont = /*#__PURE__*/function () {
    function IfcExternallyDefinedTextFont(expressID, type, Location, Identification, Name) {
      _classCallCheck(this, IfcExternallyDefinedTextFont);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
    }

    _createClass(IfcExternallyDefinedTextFont, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcExternallyDefinedTextFont(expressID, type, Location, Identification, Name);
      }
    }]);

    return IfcExternallyDefinedTextFont;
  }();

  _exports.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;

  var IfcExtrudedAreaSolid = /*#__PURE__*/function () {
    function IfcExtrudedAreaSolid(expressID, type, SweptArea, Position, ExtrudedDirection, Depth) {
      _classCallCheck(this, IfcExtrudedAreaSolid);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
      this.ExtrudedDirection = ExtrudedDirection;
      this.Depth = Depth;
    }

    _createClass(IfcExtrudedAreaSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        args.push(this.ExtrudedDirection);
        ;
        args.push(this.Depth);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        var ExtrudedDirection = tape[ptr++];
        var Depth = tape[ptr++];
        return new IfcExtrudedAreaSolid(expressID, type, SweptArea, Position, ExtrudedDirection, Depth);
      }
    }]);

    return IfcExtrudedAreaSolid;
  }();

  _exports.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;

  var IfcExtrudedAreaSolidTapered = /*#__PURE__*/function () {
    function IfcExtrudedAreaSolidTapered(expressID, type, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {
      _classCallCheck(this, IfcExtrudedAreaSolidTapered);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
      this.ExtrudedDirection = ExtrudedDirection;
      this.Depth = Depth;
      this.EndSweptArea = EndSweptArea;
    }

    _createClass(IfcExtrudedAreaSolidTapered, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        args.push(this.ExtrudedDirection);
        ;
        args.push(this.Depth);
        ;
        args.push(this.EndSweptArea);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        var ExtrudedDirection = tape[ptr++];
        var Depth = tape[ptr++];
        var EndSweptArea = tape[ptr++];
        return new IfcExtrudedAreaSolidTapered(expressID, type, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea);
      }
    }]);

    return IfcExtrudedAreaSolidTapered;
  }();

  _exports.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;

  var IfcFace = /*#__PURE__*/function () {
    function IfcFace(expressID, type, Bounds) {
      _classCallCheck(this, IfcFace);

      this.expressID = expressID;
      this.type = type;
      this.Bounds = Bounds;
    }

    _createClass(IfcFace, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Bounds);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Bounds = tape[ptr++];
        return new IfcFace(expressID, type, Bounds);
      }
    }]);

    return IfcFace;
  }();

  _exports.IfcFace = IfcFace;

  var IfcFaceBasedSurfaceModel = /*#__PURE__*/function () {
    function IfcFaceBasedSurfaceModel(expressID, type, FbsmFaces) {
      _classCallCheck(this, IfcFaceBasedSurfaceModel);

      this.expressID = expressID;
      this.type = type;
      this.FbsmFaces = FbsmFaces;
    }

    _createClass(IfcFaceBasedSurfaceModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.FbsmFaces);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var FbsmFaces = tape[ptr++];
        return new IfcFaceBasedSurfaceModel(expressID, type, FbsmFaces);
      }
    }]);

    return IfcFaceBasedSurfaceModel;
  }();

  _exports.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;

  var IfcFaceBound = /*#__PURE__*/function () {
    function IfcFaceBound(expressID, type, Bound, Orientation) {
      _classCallCheck(this, IfcFaceBound);

      this.expressID = expressID;
      this.type = type;
      this.Bound = Bound;
      this.Orientation = Orientation;
    }

    _createClass(IfcFaceBound, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Bound);
        ;
        args.push(this.Orientation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Bound = tape[ptr++];
        var Orientation = tape[ptr++];
        return new IfcFaceBound(expressID, type, Bound, Orientation);
      }
    }]);

    return IfcFaceBound;
  }();

  _exports.IfcFaceBound = IfcFaceBound;

  var IfcFaceOuterBound = /*#__PURE__*/function () {
    function IfcFaceOuterBound(expressID, type, Bound, Orientation) {
      _classCallCheck(this, IfcFaceOuterBound);

      this.expressID = expressID;
      this.type = type;
      this.Bound = Bound;
      this.Orientation = Orientation;
    }

    _createClass(IfcFaceOuterBound, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Bound);
        ;
        args.push(this.Orientation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Bound = tape[ptr++];
        var Orientation = tape[ptr++];
        return new IfcFaceOuterBound(expressID, type, Bound, Orientation);
      }
    }]);

    return IfcFaceOuterBound;
  }();

  _exports.IfcFaceOuterBound = IfcFaceOuterBound;

  var IfcFaceSurface = /*#__PURE__*/function () {
    function IfcFaceSurface(expressID, type, Bounds, FaceSurface, SameSense) {
      _classCallCheck(this, IfcFaceSurface);

      this.expressID = expressID;
      this.type = type;
      this.Bounds = Bounds;
      this.FaceSurface = FaceSurface;
      this.SameSense = SameSense;
    }

    _createClass(IfcFaceSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Bounds);
        ;
        args.push(this.FaceSurface);
        ;
        args.push(this.SameSense);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Bounds = tape[ptr++];
        var FaceSurface = tape[ptr++];
        var SameSense = tape[ptr++];
        return new IfcFaceSurface(expressID, type, Bounds, FaceSurface, SameSense);
      }
    }]);

    return IfcFaceSurface;
  }();

  _exports.IfcFaceSurface = IfcFaceSurface;

  var IfcFacetedBrep = /*#__PURE__*/function () {
    function IfcFacetedBrep(expressID, type, Outer) {
      _classCallCheck(this, IfcFacetedBrep);

      this.expressID = expressID;
      this.type = type;
      this.Outer = Outer;
    }

    _createClass(IfcFacetedBrep, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Outer);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Outer = tape[ptr++];
        return new IfcFacetedBrep(expressID, type, Outer);
      }
    }]);

    return IfcFacetedBrep;
  }();

  _exports.IfcFacetedBrep = IfcFacetedBrep;

  var IfcFacetedBrepWithVoids = /*#__PURE__*/function () {
    function IfcFacetedBrepWithVoids(expressID, type, Outer, Voids) {
      _classCallCheck(this, IfcFacetedBrepWithVoids);

      this.expressID = expressID;
      this.type = type;
      this.Outer = Outer;
      this.Voids = Voids;
    }

    _createClass(IfcFacetedBrepWithVoids, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Outer);
        ;
        args.push(this.Voids);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Outer = tape[ptr++];
        var Voids = tape[ptr++];
        return new IfcFacetedBrepWithVoids(expressID, type, Outer, Voids);
      }
    }]);

    return IfcFacetedBrepWithVoids;
  }();

  _exports.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;

  var IfcFacility = /*#__PURE__*/function () {
    function IfcFacility(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
      _classCallCheck(this, IfcFacility);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcFacility, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        return new IfcFacility(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
      }
    }]);

    return IfcFacility;
  }();

  _exports.IfcFacility = IfcFacility;

  var IfcFacilityPart = /*#__PURE__*/function () {
    function IfcFacilityPart(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
      _classCallCheck(this, IfcFacilityPart);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcFacilityPart, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        return new IfcFacilityPart(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
      }
    }]);

    return IfcFacilityPart;
  }();

  _exports.IfcFacilityPart = IfcFacilityPart;

  var IfcFailureConnectionCondition = /*#__PURE__*/function () {
    function IfcFailureConnectionCondition(expressID, type, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {
      _classCallCheck(this, IfcFailureConnectionCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.TensionFailureX = TensionFailureX;
      this.TensionFailureY = TensionFailureY;
      this.TensionFailureZ = TensionFailureZ;
      this.CompressionFailureX = CompressionFailureX;
      this.CompressionFailureY = CompressionFailureY;
      this.CompressionFailureZ = CompressionFailureZ;
    }

    _createClass(IfcFailureConnectionCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.TensionFailureX);
        ;
        args.push(this.TensionFailureY);
        ;
        args.push(this.TensionFailureZ);
        ;
        args.push(this.CompressionFailureX);
        ;
        args.push(this.CompressionFailureY);
        ;
        args.push(this.CompressionFailureZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var TensionFailureX = tape[ptr++];
        var TensionFailureY = tape[ptr++];
        var TensionFailureZ = tape[ptr++];
        var CompressionFailureX = tape[ptr++];
        var CompressionFailureY = tape[ptr++];
        var CompressionFailureZ = tape[ptr++];
        return new IfcFailureConnectionCondition(expressID, type, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ);
      }
    }]);

    return IfcFailureConnectionCondition;
  }();

  _exports.IfcFailureConnectionCondition = IfcFailureConnectionCondition;

  var IfcFan = /*#__PURE__*/function () {
    function IfcFan(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFan);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFan, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFan(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFan;
  }();

  _exports.IfcFan = IfcFan;

  var IfcFanType = /*#__PURE__*/function () {
    function IfcFanType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFanType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFanType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFanType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFanType;
  }();

  _exports.IfcFanType = IfcFanType;

  var IfcFastener = /*#__PURE__*/function () {
    function IfcFastener(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFastener);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFastener, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFastener(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFastener;
  }();

  _exports.IfcFastener = IfcFastener;

  var IfcFastenerType = /*#__PURE__*/function () {
    function IfcFastenerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFastenerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFastenerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFastenerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFastenerType;
  }();

  _exports.IfcFastenerType = IfcFastenerType;

  var IfcFeatureElement = /*#__PURE__*/function () {
    function IfcFeatureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFeatureElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFeatureElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFeatureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFeatureElement;
  }();

  _exports.IfcFeatureElement = IfcFeatureElement;

  var IfcFeatureElementAddition = /*#__PURE__*/function () {
    function IfcFeatureElementAddition(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFeatureElementAddition);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFeatureElementAddition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFeatureElementAddition(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFeatureElementAddition;
  }();

  _exports.IfcFeatureElementAddition = IfcFeatureElementAddition;

  var IfcFeatureElementSubtraction = /*#__PURE__*/function () {
    function IfcFeatureElementSubtraction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFeatureElementSubtraction);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFeatureElementSubtraction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFeatureElementSubtraction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFeatureElementSubtraction;
  }();

  _exports.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;

  var IfcFillAreaStyle = /*#__PURE__*/function () {
    function IfcFillAreaStyle(expressID, type, Name, FillStyles, ModelorDraughting) {
      _classCallCheck(this, IfcFillAreaStyle);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.FillStyles = FillStyles;
      this.ModelorDraughting = ModelorDraughting;
    }

    _createClass(IfcFillAreaStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.FillStyles);
        ;
        args.push(this.ModelorDraughting);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var FillStyles = tape[ptr++];
        var ModelorDraughting = tape[ptr++];
        return new IfcFillAreaStyle(expressID, type, Name, FillStyles, ModelorDraughting);
      }
    }]);

    return IfcFillAreaStyle;
  }();

  _exports.IfcFillAreaStyle = IfcFillAreaStyle;

  var IfcFillAreaStyleHatching = /*#__PURE__*/function () {
    function IfcFillAreaStyleHatching(expressID, type, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {
      _classCallCheck(this, IfcFillAreaStyleHatching);

      this.expressID = expressID;
      this.type = type;
      this.HatchLineAppearance = HatchLineAppearance;
      this.StartOfNextHatchLine = StartOfNextHatchLine;
      this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;
      this.PatternStart = PatternStart;
      this.HatchLineAngle = HatchLineAngle;
    }

    _createClass(IfcFillAreaStyleHatching, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.HatchLineAppearance);
        ;
        args.push(this.StartOfNextHatchLine);
        ;
        args.push(this.PointOfReferenceHatchLine);
        ;
        args.push(this.PatternStart);
        ;
        args.push(this.HatchLineAngle);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var HatchLineAppearance = tape[ptr++];
        var StartOfNextHatchLine = tape[ptr++];
        var PointOfReferenceHatchLine = tape[ptr++];
        var PatternStart = tape[ptr++];
        var HatchLineAngle = tape[ptr++];
        return new IfcFillAreaStyleHatching(expressID, type, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle);
      }
    }]);

    return IfcFillAreaStyleHatching;
  }();

  _exports.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;

  var IfcFillAreaStyleTiles = /*#__PURE__*/function () {
    function IfcFillAreaStyleTiles(expressID, type, TilingPattern, Tiles, TilingScale) {
      _classCallCheck(this, IfcFillAreaStyleTiles);

      this.expressID = expressID;
      this.type = type;
      this.TilingPattern = TilingPattern;
      this.Tiles = Tiles;
      this.TilingScale = TilingScale;
    }

    _createClass(IfcFillAreaStyleTiles, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TilingPattern);
        ;
        args.push(this.Tiles);
        ;
        args.push(this.TilingScale);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TilingPattern = tape[ptr++];
        var Tiles = tape[ptr++];
        var TilingScale = tape[ptr++];
        return new IfcFillAreaStyleTiles(expressID, type, TilingPattern, Tiles, TilingScale);
      }
    }]);

    return IfcFillAreaStyleTiles;
  }();

  _exports.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;

  var IfcFilter = /*#__PURE__*/function () {
    function IfcFilter(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFilter);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFilter, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFilter(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFilter;
  }();

  _exports.IfcFilter = IfcFilter;

  var IfcFilterType = /*#__PURE__*/function () {
    function IfcFilterType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFilterType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFilterType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFilterType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFilterType;
  }();

  _exports.IfcFilterType = IfcFilterType;

  var IfcFireSuppressionTerminal = /*#__PURE__*/function () {
    function IfcFireSuppressionTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFireSuppressionTerminal);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFireSuppressionTerminal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFireSuppressionTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFireSuppressionTerminal;
  }();

  _exports.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;

  var IfcFireSuppressionTerminalType = /*#__PURE__*/function () {
    function IfcFireSuppressionTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFireSuppressionTerminalType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFireSuppressionTerminalType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFireSuppressionTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFireSuppressionTerminalType;
  }();

  _exports.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;

  var IfcFixedReferenceSweptAreaSolid = /*#__PURE__*/function () {
    function IfcFixedReferenceSweptAreaSolid(expressID, type, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {
      _classCallCheck(this, IfcFixedReferenceSweptAreaSolid);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
      this.Directrix = Directrix;
      this.StartParam = StartParam;
      this.EndParam = EndParam;
      this.FixedReference = FixedReference;
    }

    _createClass(IfcFixedReferenceSweptAreaSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        args.push(this.Directrix);
        ;
        args.push(this.StartParam);
        ;
        args.push(this.EndParam);
        ;
        args.push(this.FixedReference);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        var Directrix = tape[ptr++];
        var StartParam = tape[ptr++];
        var EndParam = tape[ptr++];
        var FixedReference = tape[ptr++];
        return new IfcFixedReferenceSweptAreaSolid(expressID, type, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference);
      }
    }]);

    return IfcFixedReferenceSweptAreaSolid;
  }();

  _exports.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;

  var IfcFlowController = /*#__PURE__*/function () {
    function IfcFlowController(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowController);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowController, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowController(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowController;
  }();

  _exports.IfcFlowController = IfcFlowController;

  var IfcFlowControllerType = /*#__PURE__*/function () {
    function IfcFlowControllerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowControllerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowControllerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowControllerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowControllerType;
  }();

  _exports.IfcFlowControllerType = IfcFlowControllerType;

  var IfcFlowFitting = /*#__PURE__*/function () {
    function IfcFlowFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowFitting);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowFitting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowFitting;
  }();

  _exports.IfcFlowFitting = IfcFlowFitting;

  var IfcFlowFittingType = /*#__PURE__*/function () {
    function IfcFlowFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowFittingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowFittingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowFittingType;
  }();

  _exports.IfcFlowFittingType = IfcFlowFittingType;

  var IfcFlowInstrument = /*#__PURE__*/function () {
    function IfcFlowInstrument(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFlowInstrument);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFlowInstrument, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFlowInstrument(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFlowInstrument;
  }();

  _exports.IfcFlowInstrument = IfcFlowInstrument;

  var IfcFlowInstrumentType = /*#__PURE__*/function () {
    function IfcFlowInstrumentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFlowInstrumentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFlowInstrumentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFlowInstrumentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFlowInstrumentType;
  }();

  _exports.IfcFlowInstrumentType = IfcFlowInstrumentType;

  var IfcFlowMeter = /*#__PURE__*/function () {
    function IfcFlowMeter(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFlowMeter);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFlowMeter, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFlowMeter(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFlowMeter;
  }();

  _exports.IfcFlowMeter = IfcFlowMeter;

  var IfcFlowMeterType = /*#__PURE__*/function () {
    function IfcFlowMeterType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFlowMeterType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFlowMeterType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFlowMeterType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFlowMeterType;
  }();

  _exports.IfcFlowMeterType = IfcFlowMeterType;

  var IfcFlowMovingDevice = /*#__PURE__*/function () {
    function IfcFlowMovingDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowMovingDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowMovingDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowMovingDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowMovingDevice;
  }();

  _exports.IfcFlowMovingDevice = IfcFlowMovingDevice;

  var IfcFlowMovingDeviceType = /*#__PURE__*/function () {
    function IfcFlowMovingDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowMovingDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowMovingDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowMovingDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowMovingDeviceType;
  }();

  _exports.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;

  var IfcFlowSegment = /*#__PURE__*/function () {
    function IfcFlowSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowSegment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowSegment;
  }();

  _exports.IfcFlowSegment = IfcFlowSegment;

  var IfcFlowSegmentType = /*#__PURE__*/function () {
    function IfcFlowSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowSegmentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowSegmentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowSegmentType;
  }();

  _exports.IfcFlowSegmentType = IfcFlowSegmentType;

  var IfcFlowStorageDevice = /*#__PURE__*/function () {
    function IfcFlowStorageDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowStorageDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowStorageDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowStorageDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowStorageDevice;
  }();

  _exports.IfcFlowStorageDevice = IfcFlowStorageDevice;

  var IfcFlowStorageDeviceType = /*#__PURE__*/function () {
    function IfcFlowStorageDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowStorageDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowStorageDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowStorageDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowStorageDeviceType;
  }();

  _exports.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;

  var IfcFlowTerminal = /*#__PURE__*/function () {
    function IfcFlowTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowTerminal);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowTerminal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowTerminal;
  }();

  _exports.IfcFlowTerminal = IfcFlowTerminal;

  var IfcFlowTerminalType = /*#__PURE__*/function () {
    function IfcFlowTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowTerminalType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowTerminalType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowTerminalType;
  }();

  _exports.IfcFlowTerminalType = IfcFlowTerminalType;

  var IfcFlowTreatmentDevice = /*#__PURE__*/function () {
    function IfcFlowTreatmentDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFlowTreatmentDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFlowTreatmentDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFlowTreatmentDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFlowTreatmentDevice;
  }();

  _exports.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;

  var IfcFlowTreatmentDeviceType = /*#__PURE__*/function () {
    function IfcFlowTreatmentDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFlowTreatmentDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFlowTreatmentDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFlowTreatmentDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFlowTreatmentDeviceType;
  }();

  _exports.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;

  var IfcFooting = /*#__PURE__*/function () {
    function IfcFooting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFooting);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFooting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFooting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFooting;
  }();

  _exports.IfcFooting = IfcFooting;

  var IfcFootingType = /*#__PURE__*/function () {
    function IfcFootingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcFootingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFootingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFootingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcFootingType;
  }();

  _exports.IfcFootingType = IfcFootingType;

  var IfcFurnishingElement = /*#__PURE__*/function () {
    function IfcFurnishingElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcFurnishingElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcFurnishingElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcFurnishingElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcFurnishingElement;
  }();

  _exports.IfcFurnishingElement = IfcFurnishingElement;

  var IfcFurnishingElementType = /*#__PURE__*/function () {
    function IfcFurnishingElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcFurnishingElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcFurnishingElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcFurnishingElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcFurnishingElementType;
  }();

  _exports.IfcFurnishingElementType = IfcFurnishingElementType;

  var IfcFurniture = /*#__PURE__*/function () {
    function IfcFurniture(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcFurniture);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcFurniture, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFurniture(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcFurniture;
  }();

  _exports.IfcFurniture = IfcFurniture;

  var IfcFurnitureType = /*#__PURE__*/function () {
    function IfcFurnitureType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {
      _classCallCheck(this, IfcFurnitureType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.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;
    }

    _createClass(IfcFurnitureType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.AssemblyPlace);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var AssemblyPlace = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcFurnitureType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType);
      }
    }]);

    return IfcFurnitureType;
  }();

  _exports.IfcFurnitureType = IfcFurnitureType;

  var IfcGeographicElement = /*#__PURE__*/function () {
    function IfcGeographicElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcGeographicElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcGeographicElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcGeographicElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcGeographicElement;
  }();

  _exports.IfcGeographicElement = IfcGeographicElement;

  var IfcGeographicElementType = /*#__PURE__*/function () {
    function IfcGeographicElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcGeographicElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcGeographicElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcGeographicElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcGeographicElementType;
  }();

  _exports.IfcGeographicElementType = IfcGeographicElementType;

  var IfcGeometricCurveSet = /*#__PURE__*/function () {
    function IfcGeometricCurveSet(expressID, type, Elements) {
      _classCallCheck(this, IfcGeometricCurveSet);

      this.expressID = expressID;
      this.type = type;
      this.Elements = Elements;
    }

    _createClass(IfcGeometricCurveSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Elements);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Elements = tape[ptr++];
        return new IfcGeometricCurveSet(expressID, type, Elements);
      }
    }]);

    return IfcGeometricCurveSet;
  }();

  _exports.IfcGeometricCurveSet = IfcGeometricCurveSet;

  var IfcGeometricRepresentationContext = /*#__PURE__*/function () {
    function IfcGeometricRepresentationContext(expressID, type, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {
      _classCallCheck(this, IfcGeometricRepresentationContext);

      this.expressID = expressID;
      this.type = type;
      this.ContextIdentifier = ContextIdentifier;
      this.ContextType = ContextType;
      this.CoordinateSpaceDimension = CoordinateSpaceDimension;
      this.Precision = Precision;
      this.WorldCoordinateSystem = WorldCoordinateSystem;
      this.TrueNorth = TrueNorth;
    }

    _createClass(IfcGeometricRepresentationContext, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextIdentifier);
        ;
        args.push(this.ContextType);
        ;
        args.push(this.CoordinateSpaceDimension);
        ;
        args.push(this.Precision);
        ;
        args.push(this.WorldCoordinateSystem);
        ;
        args.push(this.TrueNorth);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextIdentifier = tape[ptr++];
        var ContextType = tape[ptr++];
        var CoordinateSpaceDimension = tape[ptr++];
        var Precision = tape[ptr++];
        var WorldCoordinateSystem = tape[ptr++];
        var TrueNorth = tape[ptr++];
        return new IfcGeometricRepresentationContext(expressID, type, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth);
      }
    }]);

    return IfcGeometricRepresentationContext;
  }();

  _exports.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;

  var IfcGeometricRepresentationItem = /*#__PURE__*/function () {
    function IfcGeometricRepresentationItem(expressID, type) {
      _classCallCheck(this, IfcGeometricRepresentationItem);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcGeometricRepresentationItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcGeometricRepresentationItem(expressID, type);
      }
    }]);

    return IfcGeometricRepresentationItem;
  }();

  _exports.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;

  var IfcGeometricRepresentationSubContext = /*#__PURE__*/function () {
    function IfcGeometricRepresentationSubContext(expressID, type, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {
      _classCallCheck(this, IfcGeometricRepresentationSubContext);

      this.expressID = expressID;
      this.type = type;
      this.ContextIdentifier = ContextIdentifier;
      this.ContextType = ContextType;
      this.CoordinateSpaceDimension = CoordinateSpaceDimension;
      this.Precision = Precision;
      this.WorldCoordinateSystem = WorldCoordinateSystem;
      this.TrueNorth = TrueNorth;
      this.ParentContext = ParentContext;
      this.TargetScale = TargetScale;
      this.TargetView = TargetView;
      this.UserDefinedTargetView = UserDefinedTargetView;
    }

    _createClass(IfcGeometricRepresentationSubContext, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextIdentifier);
        ;
        args.push(this.ContextType);
        ;
        args.push(this.CoordinateSpaceDimension);
        ;
        args.push(this.Precision);
        ;
        args.push(this.WorldCoordinateSystem);
        ;
        args.push(this.TrueNorth);
        ;
        args.push(this.ParentContext);
        ;
        args.push(this.TargetScale);
        ;
        args.push(this.TargetView);
        ;
        args.push(this.UserDefinedTargetView);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextIdentifier = tape[ptr++];
        var ContextType = tape[ptr++];
        var CoordinateSpaceDimension = tape[ptr++];
        var Precision = tape[ptr++];
        var WorldCoordinateSystem = tape[ptr++];
        var TrueNorth = tape[ptr++];
        var ParentContext = tape[ptr++];
        var TargetScale = tape[ptr++];
        var TargetView = tape[ptr++];
        var UserDefinedTargetView = tape[ptr++];
        return new IfcGeometricRepresentationSubContext(expressID, type, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth, ParentContext, TargetScale, TargetView, UserDefinedTargetView);
      }
    }]);

    return IfcGeometricRepresentationSubContext;
  }();

  _exports.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;

  var IfcGeometricSet = /*#__PURE__*/function () {
    function IfcGeometricSet(expressID, type, Elements) {
      _classCallCheck(this, IfcGeometricSet);

      this.expressID = expressID;
      this.type = type;
      this.Elements = Elements;
    }

    _createClass(IfcGeometricSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Elements);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Elements = tape[ptr++];
        return new IfcGeometricSet(expressID, type, Elements);
      }
    }]);

    return IfcGeometricSet;
  }();

  _exports.IfcGeometricSet = IfcGeometricSet;

  var IfcGrid = /*#__PURE__*/function () {
    function IfcGrid(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {
      _classCallCheck(this, IfcGrid);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcGrid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.UAxes);
        ;
        args.push(this.VAxes);
        ;
        args.push(this.WAxes);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var UAxes = tape[ptr++];
        var VAxes = tape[ptr++];
        var WAxes = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcGrid(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType);
      }
    }]);

    return IfcGrid;
  }();

  _exports.IfcGrid = IfcGrid;

  var IfcGridAxis = /*#__PURE__*/function () {
    function IfcGridAxis(expressID, type, AxisTag, AxisCurve, SameSense) {
      _classCallCheck(this, IfcGridAxis);

      this.expressID = expressID;
      this.type = type;
      this.AxisTag = AxisTag;
      this.AxisCurve = AxisCurve;
      this.SameSense = SameSense;
    }

    _createClass(IfcGridAxis, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.AxisTag);
        ;
        args.push(this.AxisCurve);
        ;
        args.push(this.SameSense);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var AxisTag = tape[ptr++];
        var AxisCurve = tape[ptr++];
        var SameSense = tape[ptr++];
        return new IfcGridAxis(expressID, type, AxisTag, AxisCurve, SameSense);
      }
    }]);

    return IfcGridAxis;
  }();

  _exports.IfcGridAxis = IfcGridAxis;

  var IfcGridPlacement = /*#__PURE__*/function () {
    function IfcGridPlacement(expressID, type, PlacementRelTo, PlacementLocation, PlacementRefDirection) {
      _classCallCheck(this, IfcGridPlacement);

      this.expressID = expressID;
      this.type = type;
      this.PlacementRelTo = PlacementRelTo;
      this.PlacementLocation = PlacementLocation;
      this.PlacementRefDirection = PlacementRefDirection;
    }

    _createClass(IfcGridPlacement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.PlacementRelTo);
        ;
        args.push(this.PlacementLocation);
        ;
        args.push(this.PlacementRefDirection);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var PlacementRelTo = tape[ptr++];
        var PlacementLocation = tape[ptr++];
        var PlacementRefDirection = tape[ptr++];
        return new IfcGridPlacement(expressID, type, PlacementRelTo, PlacementLocation, PlacementRefDirection);
      }
    }]);

    return IfcGridPlacement;
  }();

  _exports.IfcGridPlacement = IfcGridPlacement;

  var IfcGroup = /*#__PURE__*/function () {
    function IfcGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType) {
      _classCallCheck(this, IfcGroup);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
    }

    _createClass(IfcGroup, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        return new IfcGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType);
      }
    }]);

    return IfcGroup;
  }();

  _exports.IfcGroup = IfcGroup;

  var IfcHalfSpaceSolid = /*#__PURE__*/function () {
    function IfcHalfSpaceSolid(expressID, type, BaseSurface, AgreementFlag) {
      _classCallCheck(this, IfcHalfSpaceSolid);

      this.expressID = expressID;
      this.type = type;
      this.BaseSurface = BaseSurface;
      this.AgreementFlag = AgreementFlag;
    }

    _createClass(IfcHalfSpaceSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BaseSurface);
        ;
        args.push(this.AgreementFlag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BaseSurface = tape[ptr++];
        var AgreementFlag = tape[ptr++];
        return new IfcHalfSpaceSolid(expressID, type, BaseSurface, AgreementFlag);
      }
    }]);

    return IfcHalfSpaceSolid;
  }();

  _exports.IfcHalfSpaceSolid = IfcHalfSpaceSolid;

  var IfcHeatExchanger = /*#__PURE__*/function () {
    function IfcHeatExchanger(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcHeatExchanger);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcHeatExchanger, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcHeatExchanger(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcHeatExchanger;
  }();

  _exports.IfcHeatExchanger = IfcHeatExchanger;

  var IfcHeatExchangerType = /*#__PURE__*/function () {
    function IfcHeatExchangerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcHeatExchangerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcHeatExchangerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcHeatExchangerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcHeatExchangerType;
  }();

  _exports.IfcHeatExchangerType = IfcHeatExchangerType;

  var IfcHumidifier = /*#__PURE__*/function () {
    function IfcHumidifier(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcHumidifier);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcHumidifier, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcHumidifier(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcHumidifier;
  }();

  _exports.IfcHumidifier = IfcHumidifier;

  var IfcHumidifierType = /*#__PURE__*/function () {
    function IfcHumidifierType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcHumidifierType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcHumidifierType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcHumidifierType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcHumidifierType;
  }();

  _exports.IfcHumidifierType = IfcHumidifierType;

  var IfcIShapeProfileDef = /*#__PURE__*/function () {
    function IfcIShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {
      _classCallCheck(this, IfcIShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcIShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.OverallWidth);
        ;
        args.push(this.OverallDepth);
        ;
        args.push(this.WebThickness);
        ;
        args.push(this.FlangeThickness);
        ;
        args.push(this.FilletRadius);
        ;
        args.push(this.FlangeEdgeRadius);
        ;
        args.push(this.FlangeSlope);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var OverallWidth = tape[ptr++];
        var OverallDepth = tape[ptr++];
        var WebThickness = tape[ptr++];
        var FlangeThickness = tape[ptr++];
        var FilletRadius = tape[ptr++];
        var FlangeEdgeRadius = tape[ptr++];
        var FlangeSlope = tape[ptr++];
        return new IfcIShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope);
      }
    }]);

    return IfcIShapeProfileDef;
  }();

  _exports.IfcIShapeProfileDef = IfcIShapeProfileDef;

  var IfcImageTexture = /*#__PURE__*/function () {
    function IfcImageTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {
      _classCallCheck(this, IfcImageTexture);

      this.expressID = expressID;
      this.type = type;
      this.RepeatS = RepeatS;
      this.RepeatT = RepeatT;
      this.Mode = Mode;
      this.TextureTransform = TextureTransform;
      this.Parameter = Parameter;
      this.URLReference = URLReference;
    }

    _createClass(IfcImageTexture, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RepeatS);
        ;
        args.push(this.RepeatT);
        ;
        args.push(this.Mode);
        ;
        args.push(this.TextureTransform);
        ;
        args.push(this.Parameter);
        ;
        args.push(this.URLReference);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RepeatS = tape[ptr++];
        var RepeatT = tape[ptr++];
        var Mode = tape[ptr++];
        var TextureTransform = tape[ptr++];
        var Parameter = tape[ptr++];
        var URLReference = tape[ptr++];
        return new IfcImageTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference);
      }
    }]);

    return IfcImageTexture;
  }();

  _exports.IfcImageTexture = IfcImageTexture;

  var IfcIndexedColourMap = /*#__PURE__*/function () {
    function IfcIndexedColourMap(expressID, type, MappedTo, Opacity, Colours, ColourIndex) {
      _classCallCheck(this, IfcIndexedColourMap);

      this.expressID = expressID;
      this.type = type;
      this.MappedTo = MappedTo;
      this.Opacity = Opacity;
      this.Colours = Colours;
      this.ColourIndex = ColourIndex;
    }

    _createClass(IfcIndexedColourMap, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.MappedTo);
        ;
        args.push(this.Opacity);
        ;
        args.push(this.Colours);
        ;
        args.push(this.ColourIndex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var MappedTo = tape[ptr++];
        var Opacity = tape[ptr++];
        var Colours = tape[ptr++];
        var ColourIndex = tape[ptr++];
        return new IfcIndexedColourMap(expressID, type, MappedTo, Opacity, Colours, ColourIndex);
      }
    }]);

    return IfcIndexedColourMap;
  }();

  _exports.IfcIndexedColourMap = IfcIndexedColourMap;

  var IfcIndexedPolyCurve = /*#__PURE__*/function () {
    function IfcIndexedPolyCurve(expressID, type, Points, Segments, SelfIntersect) {
      _classCallCheck(this, IfcIndexedPolyCurve);

      this.expressID = expressID;
      this.type = type;
      this.Points = Points;
      this.Segments = Segments;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcIndexedPolyCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Points);
        ;
        args.push(this.Segments);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Points = tape[ptr++];
        var Segments = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcIndexedPolyCurve(expressID, type, Points, Segments, SelfIntersect);
      }
    }]);

    return IfcIndexedPolyCurve;
  }();

  _exports.IfcIndexedPolyCurve = IfcIndexedPolyCurve;

  var IfcIndexedPolygonalFace = /*#__PURE__*/function () {
    function IfcIndexedPolygonalFace(expressID, type, CoordIndex) {
      _classCallCheck(this, IfcIndexedPolygonalFace);

      this.expressID = expressID;
      this.type = type;
      this.CoordIndex = CoordIndex;
    }

    _createClass(IfcIndexedPolygonalFace, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CoordIndex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CoordIndex = tape[ptr++];
        return new IfcIndexedPolygonalFace(expressID, type, CoordIndex);
      }
    }]);

    return IfcIndexedPolygonalFace;
  }();

  _exports.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;

  var IfcIndexedPolygonalFaceWithVoids = /*#__PURE__*/function () {
    function IfcIndexedPolygonalFaceWithVoids(expressID, type, CoordIndex, InnerCoordIndices) {
      _classCallCheck(this, IfcIndexedPolygonalFaceWithVoids);

      this.expressID = expressID;
      this.type = type;
      this.CoordIndex = CoordIndex;
      this.InnerCoordIndices = InnerCoordIndices;
    }

    _createClass(IfcIndexedPolygonalFaceWithVoids, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CoordIndex);
        ;
        args.push(this.InnerCoordIndices);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CoordIndex = tape[ptr++];
        var InnerCoordIndices = tape[ptr++];
        return new IfcIndexedPolygonalFaceWithVoids(expressID, type, CoordIndex, InnerCoordIndices);
      }
    }]);

    return IfcIndexedPolygonalFaceWithVoids;
  }();

  _exports.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;

  var IfcIndexedTextureMap = /*#__PURE__*/function () {
    function IfcIndexedTextureMap(expressID, type, Maps, MappedTo, TexCoords) {
      _classCallCheck(this, IfcIndexedTextureMap);

      this.expressID = expressID;
      this.type = type;
      this.Maps = Maps;
      this.MappedTo = MappedTo;
      this.TexCoords = TexCoords;
    }

    _createClass(IfcIndexedTextureMap, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Maps);
        ;
        args.push(this.MappedTo);
        ;
        args.push(this.TexCoords);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Maps = tape[ptr++];
        var MappedTo = tape[ptr++];
        var TexCoords = tape[ptr++];
        return new IfcIndexedTextureMap(expressID, type, Maps, MappedTo, TexCoords);
      }
    }]);

    return IfcIndexedTextureMap;
  }();

  _exports.IfcIndexedTextureMap = IfcIndexedTextureMap;

  var IfcIndexedTriangleTextureMap = /*#__PURE__*/function () {
    function IfcIndexedTriangleTextureMap(expressID, type, Maps, MappedTo, TexCoords, TexCoordIndex) {
      _classCallCheck(this, IfcIndexedTriangleTextureMap);

      this.expressID = expressID;
      this.type = type;
      this.Maps = Maps;
      this.MappedTo = MappedTo;
      this.TexCoords = TexCoords;
      this.TexCoordIndex = TexCoordIndex;
    }

    _createClass(IfcIndexedTriangleTextureMap, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Maps);
        ;
        args.push(this.MappedTo);
        ;
        args.push(this.TexCoords);
        ;
        args.push(this.TexCoordIndex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Maps = tape[ptr++];
        var MappedTo = tape[ptr++];
        var TexCoords = tape[ptr++];
        var TexCoordIndex = tape[ptr++];
        return new IfcIndexedTriangleTextureMap(expressID, type, Maps, MappedTo, TexCoords, TexCoordIndex);
      }
    }]);

    return IfcIndexedTriangleTextureMap;
  }();

  _exports.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;

  var IfcInterceptor = /*#__PURE__*/function () {
    function IfcInterceptor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcInterceptor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcInterceptor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcInterceptor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcInterceptor;
  }();

  _exports.IfcInterceptor = IfcInterceptor;

  var IfcInterceptorType = /*#__PURE__*/function () {
    function IfcInterceptorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcInterceptorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcInterceptorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcInterceptorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcInterceptorType;
  }();

  _exports.IfcInterceptorType = IfcInterceptorType;

  var IfcIntersectionCurve = /*#__PURE__*/function () {
    function IfcIntersectionCurve(expressID, type, Curve3D, AssociatedGeometry, MasterRepresentation) {
      _classCallCheck(this, IfcIntersectionCurve);

      this.expressID = expressID;
      this.type = type;
      this.Curve3D = Curve3D;
      this.AssociatedGeometry = AssociatedGeometry;
      this.MasterRepresentation = MasterRepresentation;
    }

    _createClass(IfcIntersectionCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Curve3D);
        ;
        args.push(this.AssociatedGeometry);
        ;
        args.push(this.MasterRepresentation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Curve3D = tape[ptr++];
        var AssociatedGeometry = tape[ptr++];
        var MasterRepresentation = tape[ptr++];
        return new IfcIntersectionCurve(expressID, type, Curve3D, AssociatedGeometry, MasterRepresentation);
      }
    }]);

    return IfcIntersectionCurve;
  }();

  _exports.IfcIntersectionCurve = IfcIntersectionCurve;

  var IfcInventory = /*#__PURE__*/function () {
    function IfcInventory(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {
      _classCallCheck(this, IfcInventory);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcInventory, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Jurisdiction);
        ;
        args.push(this.ResponsiblePersons);
        ;
        args.push(this.LastUpdateDate);
        ;
        args.push(this.CurrentValue);
        ;
        args.push(this.OriginalValue);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Jurisdiction = tape[ptr++];
        var ResponsiblePersons = tape[ptr++];
        var LastUpdateDate = tape[ptr++];
        var CurrentValue = tape[ptr++];
        var OriginalValue = tape[ptr++];
        return new IfcInventory(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue);
      }
    }]);

    return IfcInventory;
  }();

  _exports.IfcInventory = IfcInventory;

  var IfcIrregularTimeSeries = /*#__PURE__*/function () {
    function IfcIrregularTimeSeries(expressID, type, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {
      _classCallCheck(this, IfcIrregularTimeSeries);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcIrregularTimeSeries, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.StartTime);
        ;
        args.push(this.EndTime);
        ;
        args.push(this.TimeSeriesDataType);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.Unit);
        ;
        args.push(this.Values);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var StartTime = tape[ptr++];
        var EndTime = tape[ptr++];
        var TimeSeriesDataType = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var Unit = tape[ptr++];
        var Values = tape[ptr++];
        return new IfcIrregularTimeSeries(expressID, type, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values);
      }
    }]);

    return IfcIrregularTimeSeries;
  }();

  _exports.IfcIrregularTimeSeries = IfcIrregularTimeSeries;

  var IfcIrregularTimeSeriesValue = /*#__PURE__*/function () {
    function IfcIrregularTimeSeriesValue(expressID, type, TimeStamp, ListValues) {
      _classCallCheck(this, IfcIrregularTimeSeriesValue);

      this.expressID = expressID;
      this.type = type;
      this.TimeStamp = TimeStamp;
      this.ListValues = ListValues;
    }

    _createClass(IfcIrregularTimeSeriesValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TimeStamp);
        ;
        args.push(this.ListValues);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TimeStamp = tape[ptr++];
        var ListValues = tape[ptr++];
        return new IfcIrregularTimeSeriesValue(expressID, type, TimeStamp, ListValues);
      }
    }]);

    return IfcIrregularTimeSeriesValue;
  }();

  _exports.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;

  var IfcJunctionBox = /*#__PURE__*/function () {
    function IfcJunctionBox(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcJunctionBox);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcJunctionBox, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcJunctionBox(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcJunctionBox;
  }();

  _exports.IfcJunctionBox = IfcJunctionBox;

  var IfcJunctionBoxType = /*#__PURE__*/function () {
    function IfcJunctionBoxType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcJunctionBoxType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcJunctionBoxType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcJunctionBoxType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcJunctionBoxType;
  }();

  _exports.IfcJunctionBoxType = IfcJunctionBoxType;

  var IfcLShapeProfileDef = /*#__PURE__*/function () {
    function IfcLShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {
      _classCallCheck(this, IfcLShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcLShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Depth);
        ;
        args.push(this.Width);
        ;
        args.push(this.Thickness);
        ;
        args.push(this.FilletRadius);
        ;
        args.push(this.EdgeRadius);
        ;
        args.push(this.LegSlope);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Depth = tape[ptr++];
        var Width = tape[ptr++];
        var Thickness = tape[ptr++];
        var FilletRadius = tape[ptr++];
        var EdgeRadius = tape[ptr++];
        var LegSlope = tape[ptr++];
        return new IfcLShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope);
      }
    }]);

    return IfcLShapeProfileDef;
  }();

  _exports.IfcLShapeProfileDef = IfcLShapeProfileDef;

  var IfcLaborResource = /*#__PURE__*/function () {
    function IfcLaborResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcLaborResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcLaborResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcLaborResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcLaborResource;
  }();

  _exports.IfcLaborResource = IfcLaborResource;

  var IfcLaborResourceType = /*#__PURE__*/function () {
    function IfcLaborResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcLaborResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcLaborResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcLaborResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcLaborResourceType;
  }();

  _exports.IfcLaborResourceType = IfcLaborResourceType;

  var IfcLagTime = /*#__PURE__*/function () {
    function IfcLagTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {
      _classCallCheck(this, IfcLagTime);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DataOrigin = DataOrigin;
      this.UserDefinedDataOrigin = UserDefinedDataOrigin;
      this.LagValue = LagValue;
      this.DurationType = DurationType;
    }

    _createClass(IfcLagTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.LagValue);
        ;
        args.push(this.DurationType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var LagValue = tape[ptr++];
        var DurationType = tape[ptr++];
        return new IfcLagTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType);
      }
    }]);

    return IfcLagTime;
  }();

  _exports.IfcLagTime = IfcLagTime;

  var IfcLamp = /*#__PURE__*/function () {
    function IfcLamp(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcLamp);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcLamp, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcLamp(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcLamp;
  }();

  _exports.IfcLamp = IfcLamp;

  var IfcLampType = /*#__PURE__*/function () {
    function IfcLampType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcLampType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcLampType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcLampType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcLampType;
  }();

  _exports.IfcLampType = IfcLampType;

  var IfcLibraryInformation = /*#__PURE__*/function () {
    function IfcLibraryInformation(expressID, type, Name, Version, Publisher, VersionDate, Location, Description) {
      _classCallCheck(this, IfcLibraryInformation);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Version = Version;
      this.Publisher = Publisher;
      this.VersionDate = VersionDate;
      this.Location = Location;
      this.Description = Description;
    }

    _createClass(IfcLibraryInformation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Version);
        ;
        args.push(this.Publisher);
        ;
        args.push(this.VersionDate);
        ;
        args.push(this.Location);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Version = tape[ptr++];
        var Publisher = tape[ptr++];
        var VersionDate = tape[ptr++];
        var Location = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcLibraryInformation(expressID, type, Name, Version, Publisher, VersionDate, Location, Description);
      }
    }]);

    return IfcLibraryInformation;
  }();

  _exports.IfcLibraryInformation = IfcLibraryInformation;

  var IfcLibraryReference = /*#__PURE__*/function () {
    function IfcLibraryReference(expressID, type, Location, Identification, Name, Description, Language, ReferencedLibrary) {
      _classCallCheck(this, IfcLibraryReference);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
      this.Identification = Identification;
      this.Name = Name;
      this.Description = Description;
      this.Language = Language;
      this.ReferencedLibrary = ReferencedLibrary;
    }

    _createClass(IfcLibraryReference, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Language);
        ;
        args.push(this.ReferencedLibrary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Language = tape[ptr++];
        var ReferencedLibrary = tape[ptr++];
        return new IfcLibraryReference(expressID, type, Location, Identification, Name, Description, Language, ReferencedLibrary);
      }
    }]);

    return IfcLibraryReference;
  }();

  _exports.IfcLibraryReference = IfcLibraryReference;

  var IfcLightDistributionData = /*#__PURE__*/function () {
    function IfcLightDistributionData(expressID, type, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {
      _classCallCheck(this, IfcLightDistributionData);

      this.expressID = expressID;
      this.type = type;
      this.MainPlaneAngle = MainPlaneAngle;
      this.SecondaryPlaneAngle = SecondaryPlaneAngle;
      this.LuminousIntensity = LuminousIntensity;
    }

    _createClass(IfcLightDistributionData, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.MainPlaneAngle);
        ;
        args.push(this.SecondaryPlaneAngle);
        ;
        args.push(this.LuminousIntensity);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var MainPlaneAngle = tape[ptr++];
        var SecondaryPlaneAngle = tape[ptr++];
        var LuminousIntensity = tape[ptr++];
        return new IfcLightDistributionData(expressID, type, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity);
      }
    }]);

    return IfcLightDistributionData;
  }();

  _exports.IfcLightDistributionData = IfcLightDistributionData;

  var IfcLightFixture = /*#__PURE__*/function () {
    function IfcLightFixture(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcLightFixture);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcLightFixture, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcLightFixture(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcLightFixture;
  }();

  _exports.IfcLightFixture = IfcLightFixture;

  var IfcLightFixtureType = /*#__PURE__*/function () {
    function IfcLightFixtureType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcLightFixtureType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcLightFixtureType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcLightFixtureType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcLightFixtureType;
  }();

  _exports.IfcLightFixtureType = IfcLightFixtureType;

  var IfcLightIntensityDistribution = /*#__PURE__*/function () {
    function IfcLightIntensityDistribution(expressID, type, LightDistributionCurve, DistributionData) {
      _classCallCheck(this, IfcLightIntensityDistribution);

      this.expressID = expressID;
      this.type = type;
      this.LightDistributionCurve = LightDistributionCurve;
      this.DistributionData = DistributionData;
    }

    _createClass(IfcLightIntensityDistribution, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.LightDistributionCurve);
        ;
        args.push(this.DistributionData);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var LightDistributionCurve = tape[ptr++];
        var DistributionData = tape[ptr++];
        return new IfcLightIntensityDistribution(expressID, type, LightDistributionCurve, DistributionData);
      }
    }]);

    return IfcLightIntensityDistribution;
  }();

  _exports.IfcLightIntensityDistribution = IfcLightIntensityDistribution;

  var IfcLightSource = /*#__PURE__*/function () {
    function IfcLightSource(expressID, type, Name, LightColour, AmbientIntensity, Intensity) {
      _classCallCheck(this, IfcLightSource);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.LightColour = LightColour;
      this.AmbientIntensity = AmbientIntensity;
      this.Intensity = Intensity;
    }

    _createClass(IfcLightSource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LightColour);
        ;
        args.push(this.AmbientIntensity);
        ;
        args.push(this.Intensity);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LightColour = tape[ptr++];
        var AmbientIntensity = tape[ptr++];
        var Intensity = tape[ptr++];
        return new IfcLightSource(expressID, type, Name, LightColour, AmbientIntensity, Intensity);
      }
    }]);

    return IfcLightSource;
  }();

  _exports.IfcLightSource = IfcLightSource;

  var IfcLightSourceAmbient = /*#__PURE__*/function () {
    function IfcLightSourceAmbient(expressID, type, Name, LightColour, AmbientIntensity, Intensity) {
      _classCallCheck(this, IfcLightSourceAmbient);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.LightColour = LightColour;
      this.AmbientIntensity = AmbientIntensity;
      this.Intensity = Intensity;
    }

    _createClass(IfcLightSourceAmbient, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LightColour);
        ;
        args.push(this.AmbientIntensity);
        ;
        args.push(this.Intensity);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LightColour = tape[ptr++];
        var AmbientIntensity = tape[ptr++];
        var Intensity = tape[ptr++];
        return new IfcLightSourceAmbient(expressID, type, Name, LightColour, AmbientIntensity, Intensity);
      }
    }]);

    return IfcLightSourceAmbient;
  }();

  _exports.IfcLightSourceAmbient = IfcLightSourceAmbient;

  var IfcLightSourceDirectional = /*#__PURE__*/function () {
    function IfcLightSourceDirectional(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Orientation) {
      _classCallCheck(this, IfcLightSourceDirectional);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.LightColour = LightColour;
      this.AmbientIntensity = AmbientIntensity;
      this.Intensity = Intensity;
      this.Orientation = Orientation;
    }

    _createClass(IfcLightSourceDirectional, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LightColour);
        ;
        args.push(this.AmbientIntensity);
        ;
        args.push(this.Intensity);
        ;
        args.push(this.Orientation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LightColour = tape[ptr++];
        var AmbientIntensity = tape[ptr++];
        var Intensity = tape[ptr++];
        var Orientation = tape[ptr++];
        return new IfcLightSourceDirectional(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Orientation);
      }
    }]);

    return IfcLightSourceDirectional;
  }();

  _exports.IfcLightSourceDirectional = IfcLightSourceDirectional;

  var IfcLightSourceGoniometric = /*#__PURE__*/function () {
    function IfcLightSourceGoniometric(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {
      _classCallCheck(this, IfcLightSourceGoniometric);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcLightSourceGoniometric, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LightColour);
        ;
        args.push(this.AmbientIntensity);
        ;
        args.push(this.Intensity);
        ;
        args.push(this.Position);
        ;
        args.push(this.ColourAppearance);
        ;
        args.push(this.ColourTemperature);
        ;
        args.push(this.LuminousFlux);
        ;
        args.push(this.LightEmissionSource);
        ;
        args.push(this.LightDistributionDataSource);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LightColour = tape[ptr++];
        var AmbientIntensity = tape[ptr++];
        var Intensity = tape[ptr++];
        var Position = tape[ptr++];
        var ColourAppearance = tape[ptr++];
        var ColourTemperature = tape[ptr++];
        var LuminousFlux = tape[ptr++];
        var LightEmissionSource = tape[ptr++];
        var LightDistributionDataSource = tape[ptr++];
        return new IfcLightSourceGoniometric(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource);
      }
    }]);

    return IfcLightSourceGoniometric;
  }();

  _exports.IfcLightSourceGoniometric = IfcLightSourceGoniometric;

  var IfcLightSourcePositional = /*#__PURE__*/function () {
    function IfcLightSourcePositional(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {
      _classCallCheck(this, IfcLightSourcePositional);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcLightSourcePositional, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LightColour);
        ;
        args.push(this.AmbientIntensity);
        ;
        args.push(this.Intensity);
        ;
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        args.push(this.ConstantAttenuation);
        ;
        args.push(this.DistanceAttenuation);
        ;
        args.push(this.QuadricAttenuation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LightColour = tape[ptr++];
        var AmbientIntensity = tape[ptr++];
        var Intensity = tape[ptr++];
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        var ConstantAttenuation = tape[ptr++];
        var DistanceAttenuation = tape[ptr++];
        var QuadricAttenuation = tape[ptr++];
        return new IfcLightSourcePositional(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);
      }
    }]);

    return IfcLightSourcePositional;
  }();

  _exports.IfcLightSourcePositional = IfcLightSourcePositional;

  var IfcLightSourceSpot = /*#__PURE__*/function () {
    function IfcLightSourceSpot(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {
      _classCallCheck(this, IfcLightSourceSpot);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcLightSourceSpot, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LightColour);
        ;
        args.push(this.AmbientIntensity);
        ;
        args.push(this.Intensity);
        ;
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        args.push(this.ConstantAttenuation);
        ;
        args.push(this.DistanceAttenuation);
        ;
        args.push(this.QuadricAttenuation);
        ;
        args.push(this.Orientation);
        ;
        args.push(this.ConcentrationExponent);
        ;
        args.push(this.SpreadAngle);
        ;
        args.push(this.BeamWidthAngle);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LightColour = tape[ptr++];
        var AmbientIntensity = tape[ptr++];
        var Intensity = tape[ptr++];
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        var ConstantAttenuation = tape[ptr++];
        var DistanceAttenuation = tape[ptr++];
        var QuadricAttenuation = tape[ptr++];
        var Orientation = tape[ptr++];
        var ConcentrationExponent = tape[ptr++];
        var SpreadAngle = tape[ptr++];
        var BeamWidthAngle = tape[ptr++];
        return new IfcLightSourceSpot(expressID, type, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle);
      }
    }]);

    return IfcLightSourceSpot;
  }();

  _exports.IfcLightSourceSpot = IfcLightSourceSpot;

  var IfcLine = /*#__PURE__*/function () {
    function IfcLine(expressID, type, Pnt, Dir) {
      _classCallCheck(this, IfcLine);

      this.expressID = expressID;
      this.type = type;
      this.Pnt = Pnt;
      this.Dir = Dir;
    }

    _createClass(IfcLine, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Pnt);
        ;
        args.push(this.Dir);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Pnt = tape[ptr++];
        var Dir = tape[ptr++];
        return new IfcLine(expressID, type, Pnt, Dir);
      }
    }]);

    return IfcLine;
  }();

  _exports.IfcLine = IfcLine;

  var IfcLineSegment2D = /*#__PURE__*/function () {
    function IfcLineSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength) {
      _classCallCheck(this, IfcLineSegment2D);

      this.expressID = expressID;
      this.type = type;
      this.StartPoint = StartPoint;
      this.StartDirection = StartDirection;
      this.SegmentLength = SegmentLength;
    }

    _createClass(IfcLineSegment2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.StartPoint);
        ;
        args.push(this.StartDirection);
        ;
        args.push(this.SegmentLength);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var StartPoint = tape[ptr++];
        var StartDirection = tape[ptr++];
        var SegmentLength = tape[ptr++];
        return new IfcLineSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength);
      }
    }]);

    return IfcLineSegment2D;
  }();

  _exports.IfcLineSegment2D = IfcLineSegment2D;

  var IfcLinearPlacement = /*#__PURE__*/function () {
    function IfcLinearPlacement(expressID, type, PlacementRelTo, PlacementMeasuredAlong, Distance, Orientation, CartesianPosition) {
      _classCallCheck(this, IfcLinearPlacement);

      this.expressID = expressID;
      this.type = type;
      this.PlacementRelTo = PlacementRelTo;
      this.PlacementMeasuredAlong = PlacementMeasuredAlong;
      this.Distance = Distance;
      this.Orientation = Orientation;
      this.CartesianPosition = CartesianPosition;
    }

    _createClass(IfcLinearPlacement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.PlacementRelTo);
        ;
        args.push(this.PlacementMeasuredAlong);
        ;
        args.push(this.Distance);
        ;
        args.push(this.Orientation);
        ;
        args.push(this.CartesianPosition);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var PlacementRelTo = tape[ptr++];
        var PlacementMeasuredAlong = tape[ptr++];
        var Distance = tape[ptr++];
        var Orientation = tape[ptr++];
        var CartesianPosition = tape[ptr++];
        return new IfcLinearPlacement(expressID, type, PlacementRelTo, PlacementMeasuredAlong, Distance, Orientation, CartesianPosition);
      }
    }]);

    return IfcLinearPlacement;
  }();

  _exports.IfcLinearPlacement = IfcLinearPlacement;

  var IfcLinearPositioningElement = /*#__PURE__*/function () {
    function IfcLinearPositioningElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Axis) {
      _classCallCheck(this, IfcLinearPositioningElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Axis = Axis;
    }

    _createClass(IfcLinearPositioningElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Axis);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Axis = tape[ptr++];
        return new IfcLinearPositioningElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Axis);
      }
    }]);

    return IfcLinearPositioningElement;
  }();

  _exports.IfcLinearPositioningElement = IfcLinearPositioningElement;

  var IfcLocalPlacement = /*#__PURE__*/function () {
    function IfcLocalPlacement(expressID, type, PlacementRelTo, RelativePlacement) {
      _classCallCheck(this, IfcLocalPlacement);

      this.expressID = expressID;
      this.type = type;
      this.PlacementRelTo = PlacementRelTo;
      this.RelativePlacement = RelativePlacement;
    }

    _createClass(IfcLocalPlacement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.PlacementRelTo);
        ;
        args.push(this.RelativePlacement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var PlacementRelTo = tape[ptr++];
        var RelativePlacement = tape[ptr++];
        return new IfcLocalPlacement(expressID, type, PlacementRelTo, RelativePlacement);
      }
    }]);

    return IfcLocalPlacement;
  }();

  _exports.IfcLocalPlacement = IfcLocalPlacement;

  var IfcLoop = /*#__PURE__*/function () {
    function IfcLoop(expressID, type) {
      _classCallCheck(this, IfcLoop);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcLoop, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcLoop(expressID, type);
      }
    }]);

    return IfcLoop;
  }();

  _exports.IfcLoop = IfcLoop;

  var IfcManifoldSolidBrep = /*#__PURE__*/function () {
    function IfcManifoldSolidBrep(expressID, type, Outer) {
      _classCallCheck(this, IfcManifoldSolidBrep);

      this.expressID = expressID;
      this.type = type;
      this.Outer = Outer;
    }

    _createClass(IfcManifoldSolidBrep, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Outer);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Outer = tape[ptr++];
        return new IfcManifoldSolidBrep(expressID, type, Outer);
      }
    }]);

    return IfcManifoldSolidBrep;
  }();

  _exports.IfcManifoldSolidBrep = IfcManifoldSolidBrep;

  var IfcMapConversion = /*#__PURE__*/function () {
    function IfcMapConversion(expressID, type, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) {
      _classCallCheck(this, IfcMapConversion);

      this.expressID = expressID;
      this.type = type;
      this.SourceCRS = SourceCRS;
      this.TargetCRS = TargetCRS;
      this.Eastings = Eastings;
      this.Northings = Northings;
      this.OrthogonalHeight = OrthogonalHeight;
      this.XAxisAbscissa = XAxisAbscissa;
      this.XAxisOrdinate = XAxisOrdinate;
      this.Scale = Scale;
    }

    _createClass(IfcMapConversion, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SourceCRS);
        ;
        args.push(this.TargetCRS);
        ;
        args.push(this.Eastings);
        ;
        args.push(this.Northings);
        ;
        args.push(this.OrthogonalHeight);
        ;
        args.push(this.XAxisAbscissa);
        ;
        args.push(this.XAxisOrdinate);
        ;
        args.push(this.Scale);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SourceCRS = tape[ptr++];
        var TargetCRS = tape[ptr++];
        var Eastings = tape[ptr++];
        var Northings = tape[ptr++];
        var OrthogonalHeight = tape[ptr++];
        var XAxisAbscissa = tape[ptr++];
        var XAxisOrdinate = tape[ptr++];
        var Scale = tape[ptr++];
        return new IfcMapConversion(expressID, type, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale);
      }
    }]);

    return IfcMapConversion;
  }();

  _exports.IfcMapConversion = IfcMapConversion;

  var IfcMappedItem = /*#__PURE__*/function () {
    function IfcMappedItem(expressID, type, MappingSource, MappingTarget) {
      _classCallCheck(this, IfcMappedItem);

      this.expressID = expressID;
      this.type = type;
      this.MappingSource = MappingSource;
      this.MappingTarget = MappingTarget;
    }

    _createClass(IfcMappedItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.MappingSource);
        ;
        args.push(this.MappingTarget);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var MappingSource = tape[ptr++];
        var MappingTarget = tape[ptr++];
        return new IfcMappedItem(expressID, type, MappingSource, MappingTarget);
      }
    }]);

    return IfcMappedItem;
  }();

  _exports.IfcMappedItem = IfcMappedItem;

  var IfcMaterial = /*#__PURE__*/function () {
    function IfcMaterial(expressID, type, Name, Description, Category) {
      _classCallCheck(this, IfcMaterial);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Category = Category;
    }

    _createClass(IfcMaterial, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Category);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Category = tape[ptr++];
        return new IfcMaterial(expressID, type, Name, Description, Category);
      }
    }]);

    return IfcMaterial;
  }();

  _exports.IfcMaterial = IfcMaterial;

  var IfcMaterialClassificationRelationship = /*#__PURE__*/function () {
    function IfcMaterialClassificationRelationship(expressID, type, MaterialClassifications, ClassifiedMaterial) {
      _classCallCheck(this, IfcMaterialClassificationRelationship);

      this.expressID = expressID;
      this.type = type;
      this.MaterialClassifications = MaterialClassifications;
      this.ClassifiedMaterial = ClassifiedMaterial;
    }

    _createClass(IfcMaterialClassificationRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.MaterialClassifications);
        ;
        args.push(this.ClassifiedMaterial);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var MaterialClassifications = tape[ptr++];
        var ClassifiedMaterial = tape[ptr++];
        return new IfcMaterialClassificationRelationship(expressID, type, MaterialClassifications, ClassifiedMaterial);
      }
    }]);

    return IfcMaterialClassificationRelationship;
  }();

  _exports.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;

  var IfcMaterialConstituent = /*#__PURE__*/function () {
    function IfcMaterialConstituent(expressID, type, Name, Description, Material, Fraction, Category) {
      _classCallCheck(this, IfcMaterialConstituent);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Material = Material;
      this.Fraction = Fraction;
      this.Category = Category;
    }

    _createClass(IfcMaterialConstituent, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Material);
        ;
        args.push(this.Fraction);
        ;
        args.push(this.Category);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Material = tape[ptr++];
        var Fraction = tape[ptr++];
        var Category = tape[ptr++];
        return new IfcMaterialConstituent(expressID, type, Name, Description, Material, Fraction, Category);
      }
    }]);

    return IfcMaterialConstituent;
  }();

  _exports.IfcMaterialConstituent = IfcMaterialConstituent;

  var IfcMaterialConstituentSet = /*#__PURE__*/function () {
    function IfcMaterialConstituentSet(expressID, type, Name, Description, MaterialConstituents) {
      _classCallCheck(this, IfcMaterialConstituentSet);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.MaterialConstituents = MaterialConstituents;
    }

    _createClass(IfcMaterialConstituentSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.MaterialConstituents);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var MaterialConstituents = tape[ptr++];
        return new IfcMaterialConstituentSet(expressID, type, Name, Description, MaterialConstituents);
      }
    }]);

    return IfcMaterialConstituentSet;
  }();

  _exports.IfcMaterialConstituentSet = IfcMaterialConstituentSet;

  var IfcMaterialDefinition = /*#__PURE__*/function () {
    function IfcMaterialDefinition(expressID, type) {
      _classCallCheck(this, IfcMaterialDefinition);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcMaterialDefinition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcMaterialDefinition(expressID, type);
      }
    }]);

    return IfcMaterialDefinition;
  }();

  _exports.IfcMaterialDefinition = IfcMaterialDefinition;

  var IfcMaterialDefinitionRepresentation = /*#__PURE__*/function () {
    function IfcMaterialDefinitionRepresentation(expressID, type, Name, Description, Representations, RepresentedMaterial) {
      _classCallCheck(this, IfcMaterialDefinitionRepresentation);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Representations = Representations;
      this.RepresentedMaterial = RepresentedMaterial;
    }

    _createClass(IfcMaterialDefinitionRepresentation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Representations);
        ;
        args.push(this.RepresentedMaterial);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Representations = tape[ptr++];
        var RepresentedMaterial = tape[ptr++];
        return new IfcMaterialDefinitionRepresentation(expressID, type, Name, Description, Representations, RepresentedMaterial);
      }
    }]);

    return IfcMaterialDefinitionRepresentation;
  }();

  _exports.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;

  var IfcMaterialLayer = /*#__PURE__*/function () {
    function IfcMaterialLayer(expressID, type, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {
      _classCallCheck(this, IfcMaterialLayer);

      this.expressID = expressID;
      this.type = type;
      this.Material = Material;
      this.LayerThickness = LayerThickness;
      this.IsVentilated = IsVentilated;
      this.Name = Name;
      this.Description = Description;
      this.Category = Category;
      this.Priority = Priority;
    }

    _createClass(IfcMaterialLayer, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Material);
        ;
        args.push(this.LayerThickness);
        ;
        args.push(this.IsVentilated);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Category);
        ;
        args.push(this.Priority);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Material = tape[ptr++];
        var LayerThickness = tape[ptr++];
        var IsVentilated = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Category = tape[ptr++];
        var Priority = tape[ptr++];
        return new IfcMaterialLayer(expressID, type, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);
      }
    }]);

    return IfcMaterialLayer;
  }();

  _exports.IfcMaterialLayer = IfcMaterialLayer;

  var IfcMaterialLayerSet = /*#__PURE__*/function () {
    function IfcMaterialLayerSet(expressID, type, MaterialLayers, LayerSetName, Description) {
      _classCallCheck(this, IfcMaterialLayerSet);

      this.expressID = expressID;
      this.type = type;
      this.MaterialLayers = MaterialLayers;
      this.LayerSetName = LayerSetName;
      this.Description = Description;
    }

    _createClass(IfcMaterialLayerSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.MaterialLayers);
        ;
        args.push(this.LayerSetName);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var MaterialLayers = tape[ptr++];
        var LayerSetName = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcMaterialLayerSet(expressID, type, MaterialLayers, LayerSetName, Description);
      }
    }]);

    return IfcMaterialLayerSet;
  }();

  _exports.IfcMaterialLayerSet = IfcMaterialLayerSet;

  var IfcMaterialLayerSetUsage = /*#__PURE__*/function () {
    function IfcMaterialLayerSetUsage(expressID, type, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {
      _classCallCheck(this, IfcMaterialLayerSetUsage);

      this.expressID = expressID;
      this.type = type;
      this.ForLayerSet = ForLayerSet;
      this.LayerSetDirection = LayerSetDirection;
      this.DirectionSense = DirectionSense;
      this.OffsetFromReferenceLine = OffsetFromReferenceLine;
      this.ReferenceExtent = ReferenceExtent;
    }

    _createClass(IfcMaterialLayerSetUsage, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ForLayerSet);
        ;
        args.push(this.LayerSetDirection);
        ;
        args.push(this.DirectionSense);
        ;
        args.push(this.OffsetFromReferenceLine);
        ;
        args.push(this.ReferenceExtent);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ForLayerSet = tape[ptr++];
        var LayerSetDirection = tape[ptr++];
        var DirectionSense = tape[ptr++];
        var OffsetFromReferenceLine = tape[ptr++];
        var ReferenceExtent = tape[ptr++];
        return new IfcMaterialLayerSetUsage(expressID, type, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent);
      }
    }]);

    return IfcMaterialLayerSetUsage;
  }();

  _exports.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;

  var IfcMaterialLayerWithOffsets = /*#__PURE__*/function () {
    function IfcMaterialLayerWithOffsets(expressID, type, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {
      _classCallCheck(this, IfcMaterialLayerWithOffsets);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcMaterialLayerWithOffsets, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Material);
        ;
        args.push(this.LayerThickness);
        ;
        args.push(this.IsVentilated);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Category);
        ;
        args.push(this.Priority);
        ;
        args.push(this.OffsetDirection);
        ;
        args.push(this.OffsetValues);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Material = tape[ptr++];
        var LayerThickness = tape[ptr++];
        var IsVentilated = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Category = tape[ptr++];
        var Priority = tape[ptr++];
        var OffsetDirection = tape[ptr++];
        var OffsetValues = tape[ptr++];
        return new IfcMaterialLayerWithOffsets(expressID, type, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues);
      }
    }]);

    return IfcMaterialLayerWithOffsets;
  }();

  _exports.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;

  var IfcMaterialList = /*#__PURE__*/function () {
    function IfcMaterialList(expressID, type, Materials) {
      _classCallCheck(this, IfcMaterialList);

      this.expressID = expressID;
      this.type = type;
      this.Materials = Materials;
    }

    _createClass(IfcMaterialList, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Materials);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Materials = tape[ptr++];
        return new IfcMaterialList(expressID, type, Materials);
      }
    }]);

    return IfcMaterialList;
  }();

  _exports.IfcMaterialList = IfcMaterialList;

  var IfcMaterialProfile = /*#__PURE__*/function () {
    function IfcMaterialProfile(expressID, type, Name, Description, Material, Profile, Priority, Category) {
      _classCallCheck(this, IfcMaterialProfile);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Material = Material;
      this.Profile = Profile;
      this.Priority = Priority;
      this.Category = Category;
    }

    _createClass(IfcMaterialProfile, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Material);
        ;
        args.push(this.Profile);
        ;
        args.push(this.Priority);
        ;
        args.push(this.Category);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Material = tape[ptr++];
        var Profile = tape[ptr++];
        var Priority = tape[ptr++];
        var Category = tape[ptr++];
        return new IfcMaterialProfile(expressID, type, Name, Description, Material, Profile, Priority, Category);
      }
    }]);

    return IfcMaterialProfile;
  }();

  _exports.IfcMaterialProfile = IfcMaterialProfile;

  var IfcMaterialProfileSet = /*#__PURE__*/function () {
    function IfcMaterialProfileSet(expressID, type, Name, Description, MaterialProfiles, CompositeProfile) {
      _classCallCheck(this, IfcMaterialProfileSet);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.MaterialProfiles = MaterialProfiles;
      this.CompositeProfile = CompositeProfile;
    }

    _createClass(IfcMaterialProfileSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.MaterialProfiles);
        ;
        args.push(this.CompositeProfile);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var MaterialProfiles = tape[ptr++];
        var CompositeProfile = tape[ptr++];
        return new IfcMaterialProfileSet(expressID, type, Name, Description, MaterialProfiles, CompositeProfile);
      }
    }]);

    return IfcMaterialProfileSet;
  }();

  _exports.IfcMaterialProfileSet = IfcMaterialProfileSet;

  var IfcMaterialProfileSetUsage = /*#__PURE__*/function () {
    function IfcMaterialProfileSetUsage(expressID, type, ForProfileSet, CardinalPoint, ReferenceExtent) {
      _classCallCheck(this, IfcMaterialProfileSetUsage);

      this.expressID = expressID;
      this.type = type;
      this.ForProfileSet = ForProfileSet;
      this.CardinalPoint = CardinalPoint;
      this.ReferenceExtent = ReferenceExtent;
    }

    _createClass(IfcMaterialProfileSetUsage, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ForProfileSet);
        ;
        args.push(this.CardinalPoint);
        ;
        args.push(this.ReferenceExtent);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ForProfileSet = tape[ptr++];
        var CardinalPoint = tape[ptr++];
        var ReferenceExtent = tape[ptr++];
        return new IfcMaterialProfileSetUsage(expressID, type, ForProfileSet, CardinalPoint, ReferenceExtent);
      }
    }]);

    return IfcMaterialProfileSetUsage;
  }();

  _exports.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;

  var IfcMaterialProfileSetUsageTapering = /*#__PURE__*/function () {
    function IfcMaterialProfileSetUsageTapering(expressID, type, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {
      _classCallCheck(this, IfcMaterialProfileSetUsageTapering);

      this.expressID = expressID;
      this.type = type;
      this.ForProfileSet = ForProfileSet;
      this.CardinalPoint = CardinalPoint;
      this.ReferenceExtent = ReferenceExtent;
      this.ForProfileEndSet = ForProfileEndSet;
      this.CardinalEndPoint = CardinalEndPoint;
    }

    _createClass(IfcMaterialProfileSetUsageTapering, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ForProfileSet);
        ;
        args.push(this.CardinalPoint);
        ;
        args.push(this.ReferenceExtent);
        ;
        args.push(this.ForProfileEndSet);
        ;
        args.push(this.CardinalEndPoint);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ForProfileSet = tape[ptr++];
        var CardinalPoint = tape[ptr++];
        var ReferenceExtent = tape[ptr++];
        var ForProfileEndSet = tape[ptr++];
        var CardinalEndPoint = tape[ptr++];
        return new IfcMaterialProfileSetUsageTapering(expressID, type, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint);
      }
    }]);

    return IfcMaterialProfileSetUsageTapering;
  }();

  _exports.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;

  var IfcMaterialProfileWithOffsets = /*#__PURE__*/function () {
    function IfcMaterialProfileWithOffsets(expressID, type, Name, Description, Material, Profile, Priority, Category, OffsetValues) {
      _classCallCheck(this, IfcMaterialProfileWithOffsets);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Material = Material;
      this.Profile = Profile;
      this.Priority = Priority;
      this.Category = Category;
      this.OffsetValues = OffsetValues;
    }

    _createClass(IfcMaterialProfileWithOffsets, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Material);
        ;
        args.push(this.Profile);
        ;
        args.push(this.Priority);
        ;
        args.push(this.Category);
        ;
        args.push(this.OffsetValues);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Material = tape[ptr++];
        var Profile = tape[ptr++];
        var Priority = tape[ptr++];
        var Category = tape[ptr++];
        var OffsetValues = tape[ptr++];
        return new IfcMaterialProfileWithOffsets(expressID, type, Name, Description, Material, Profile, Priority, Category, OffsetValues);
      }
    }]);

    return IfcMaterialProfileWithOffsets;
  }();

  _exports.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;

  var IfcMaterialProperties = /*#__PURE__*/function () {
    function IfcMaterialProperties(expressID, type, Name, Description, Properties, Material) {
      _classCallCheck(this, IfcMaterialProperties);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Properties = Properties;
      this.Material = Material;
    }

    _createClass(IfcMaterialProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Properties);
        ;
        args.push(this.Material);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Properties = tape[ptr++];
        var Material = tape[ptr++];
        return new IfcMaterialProperties(expressID, type, Name, Description, Properties, Material);
      }
    }]);

    return IfcMaterialProperties;
  }();

  _exports.IfcMaterialProperties = IfcMaterialProperties;

  var IfcMaterialRelationship = /*#__PURE__*/function () {
    function IfcMaterialRelationship(expressID, type, Name, Description, RelatingMaterial, RelatedMaterials, Expression) {
      _classCallCheck(this, IfcMaterialRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingMaterial = RelatingMaterial;
      this.RelatedMaterials = RelatedMaterials;
      this.Expression = Expression;
    }

    _createClass(IfcMaterialRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingMaterial);
        ;
        args.push(this.RelatedMaterials);
        ;
        args.push(this.Expression);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingMaterial = tape[ptr++];
        var RelatedMaterials = tape[ptr++];
        var Expression = tape[ptr++];
        return new IfcMaterialRelationship(expressID, type, Name, Description, RelatingMaterial, RelatedMaterials, Expression);
      }
    }]);

    return IfcMaterialRelationship;
  }();

  _exports.IfcMaterialRelationship = IfcMaterialRelationship;

  var IfcMaterialUsageDefinition = /*#__PURE__*/function () {
    function IfcMaterialUsageDefinition(expressID, type) {
      _classCallCheck(this, IfcMaterialUsageDefinition);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcMaterialUsageDefinition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcMaterialUsageDefinition(expressID, type);
      }
    }]);

    return IfcMaterialUsageDefinition;
  }();

  _exports.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;

  var IfcMeasureWithUnit = /*#__PURE__*/function () {
    function IfcMeasureWithUnit(expressID, type, ValueComponent, UnitComponent) {
      _classCallCheck(this, IfcMeasureWithUnit);

      this.expressID = expressID;
      this.type = type;
      this.ValueComponent = ValueComponent;
      this.UnitComponent = UnitComponent;
    }

    _createClass(IfcMeasureWithUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ValueComponent);
        ;
        args.push(this.UnitComponent);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ValueComponent = tape[ptr++];
        var UnitComponent = tape[ptr++];
        return new IfcMeasureWithUnit(expressID, type, ValueComponent, UnitComponent);
      }
    }]);

    return IfcMeasureWithUnit;
  }();

  _exports.IfcMeasureWithUnit = IfcMeasureWithUnit;

  var IfcMechanicalFastener = /*#__PURE__*/function () {
    function IfcMechanicalFastener(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {
      _classCallCheck(this, IfcMechanicalFastener);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcMechanicalFastener, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.NominalDiameter);
        ;
        args.push(this.NominalLength);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var NominalDiameter = tape[ptr++];
        var NominalLength = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMechanicalFastener(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType);
      }
    }]);

    return IfcMechanicalFastener;
  }();

  _exports.IfcMechanicalFastener = IfcMechanicalFastener;

  var IfcMechanicalFastenerType = /*#__PURE__*/function () {
    function IfcMechanicalFastenerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {
      _classCallCheck(this, IfcMechanicalFastenerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcMechanicalFastenerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.NominalDiameter);
        ;
        args.push(this.NominalLength);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var NominalDiameter = tape[ptr++];
        var NominalLength = tape[ptr++];
        return new IfcMechanicalFastenerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength);
      }
    }]);

    return IfcMechanicalFastenerType;
  }();

  _exports.IfcMechanicalFastenerType = IfcMechanicalFastenerType;

  var IfcMedicalDevice = /*#__PURE__*/function () {
    function IfcMedicalDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcMedicalDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMedicalDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMedicalDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcMedicalDevice;
  }();

  _exports.IfcMedicalDevice = IfcMedicalDevice;

  var IfcMedicalDeviceType = /*#__PURE__*/function () {
    function IfcMedicalDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcMedicalDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMedicalDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMedicalDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcMedicalDeviceType;
  }();

  _exports.IfcMedicalDeviceType = IfcMedicalDeviceType;

  var IfcMember = /*#__PURE__*/function () {
    function IfcMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcMember);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMember, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcMember;
  }();

  _exports.IfcMember = IfcMember;

  var IfcMemberStandardCase = /*#__PURE__*/function () {
    function IfcMemberStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcMemberStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMemberStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMemberStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcMemberStandardCase;
  }();

  _exports.IfcMemberStandardCase = IfcMemberStandardCase;

  var IfcMemberType = /*#__PURE__*/function () {
    function IfcMemberType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcMemberType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMemberType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMemberType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcMemberType;
  }();

  _exports.IfcMemberType = IfcMemberType;

  var IfcMetric = /*#__PURE__*/function () {
    function IfcMetric(expressID, type, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {
      _classCallCheck(this, IfcMetric);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcMetric, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ConstraintGrade);
        ;
        args.push(this.ConstraintSource);
        ;
        args.push(this.CreatingActor);
        ;
        args.push(this.CreationTime);
        ;
        args.push(this.UserDefinedGrade);
        ;
        args.push(this.Benchmark);
        ;
        args.push(this.ValueSource);
        ;
        args.push(this.DataValue);
        ;
        args.push(this.ReferencePath);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ConstraintGrade = tape[ptr++];
        var ConstraintSource = tape[ptr++];
        var CreatingActor = tape[ptr++];
        var CreationTime = tape[ptr++];
        var UserDefinedGrade = tape[ptr++];
        var Benchmark = tape[ptr++];
        var ValueSource = tape[ptr++];
        var DataValue = tape[ptr++];
        var ReferencePath = tape[ptr++];
        return new IfcMetric(expressID, type, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath);
      }
    }]);

    return IfcMetric;
  }();

  _exports.IfcMetric = IfcMetric;

  var IfcMirroredProfileDef = /*#__PURE__*/function () {
    function IfcMirroredProfileDef(expressID, type, ProfileType, ProfileName, ParentProfile, Operator, Label) {
      _classCallCheck(this, IfcMirroredProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.ParentProfile = ParentProfile;
      this.Operator = Operator;
      this.Label = Label;
    }

    _createClass(IfcMirroredProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.ParentProfile);
        ;
        args.push(this.Operator);
        ;
        args.push(this.Label);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var ParentProfile = tape[ptr++];
        var Operator = tape[ptr++];
        var Label = tape[ptr++];
        return new IfcMirroredProfileDef(expressID, type, ProfileType, ProfileName, ParentProfile, Operator, Label);
      }
    }]);

    return IfcMirroredProfileDef;
  }();

  _exports.IfcMirroredProfileDef = IfcMirroredProfileDef;

  var IfcMonetaryUnit = /*#__PURE__*/function () {
    function IfcMonetaryUnit(expressID, type, Currency) {
      _classCallCheck(this, IfcMonetaryUnit);

      this.expressID = expressID;
      this.type = type;
      this.Currency = Currency;
    }

    _createClass(IfcMonetaryUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Currency);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Currency = tape[ptr++];
        return new IfcMonetaryUnit(expressID, type, Currency);
      }
    }]);

    return IfcMonetaryUnit;
  }();

  _exports.IfcMonetaryUnit = IfcMonetaryUnit;

  var IfcMotorConnection = /*#__PURE__*/function () {
    function IfcMotorConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcMotorConnection);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMotorConnection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMotorConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcMotorConnection;
  }();

  _exports.IfcMotorConnection = IfcMotorConnection;

  var IfcMotorConnectionType = /*#__PURE__*/function () {
    function IfcMotorConnectionType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcMotorConnectionType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcMotorConnectionType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcMotorConnectionType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcMotorConnectionType;
  }();

  _exports.IfcMotorConnectionType = IfcMotorConnectionType;

  var IfcNamedUnit = /*#__PURE__*/function () {
    function IfcNamedUnit(expressID, type, Dimensions, UnitType) {
      _classCallCheck(this, IfcNamedUnit);

      this.expressID = expressID;
      this.type = type;
      this.Dimensions = Dimensions;
      this.UnitType = UnitType;
    }

    _createClass(IfcNamedUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Dimensions);
        ;
        args.push(this.UnitType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Dimensions = tape[ptr++];
        var UnitType = tape[ptr++];
        return new IfcNamedUnit(expressID, type, Dimensions, UnitType);
      }
    }]);

    return IfcNamedUnit;
  }();

  _exports.IfcNamedUnit = IfcNamedUnit;

  var IfcObject = /*#__PURE__*/function () {
    function IfcObject(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType) {
      _classCallCheck(this, IfcObject);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
    }

    _createClass(IfcObject, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        return new IfcObject(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType);
      }
    }]);

    return IfcObject;
  }();

  _exports.IfcObject = IfcObject;

  var IfcObjectDefinition = /*#__PURE__*/function () {
    function IfcObjectDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcObjectDefinition);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcObjectDefinition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcObjectDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcObjectDefinition;
  }();

  _exports.IfcObjectDefinition = IfcObjectDefinition;

  var IfcObjectPlacement = /*#__PURE__*/function () {
    function IfcObjectPlacement(expressID, type, PlacementRelTo) {
      _classCallCheck(this, IfcObjectPlacement);

      this.expressID = expressID;
      this.type = type;
      this.PlacementRelTo = PlacementRelTo;
    }

    _createClass(IfcObjectPlacement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.PlacementRelTo);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var PlacementRelTo = tape[ptr++];
        return new IfcObjectPlacement(expressID, type, PlacementRelTo);
      }
    }]);

    return IfcObjectPlacement;
  }();

  _exports.IfcObjectPlacement = IfcObjectPlacement;

  var IfcObjective = /*#__PURE__*/function () {
    function IfcObjective(expressID, type, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {
      _classCallCheck(this, IfcObjective);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcObjective, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ConstraintGrade);
        ;
        args.push(this.ConstraintSource);
        ;
        args.push(this.CreatingActor);
        ;
        args.push(this.CreationTime);
        ;
        args.push(this.UserDefinedGrade);
        ;
        args.push(this.BenchmarkValues);
        ;
        args.push(this.LogicalAggregator);
        ;
        args.push(this.ObjectiveQualifier);
        ;
        args.push(this.UserDefinedQualifier);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ConstraintGrade = tape[ptr++];
        var ConstraintSource = tape[ptr++];
        var CreatingActor = tape[ptr++];
        var CreationTime = tape[ptr++];
        var UserDefinedGrade = tape[ptr++];
        var BenchmarkValues = tape[ptr++];
        var LogicalAggregator = tape[ptr++];
        var ObjectiveQualifier = tape[ptr++];
        var UserDefinedQualifier = tape[ptr++];
        return new IfcObjective(expressID, type, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier);
      }
    }]);

    return IfcObjective;
  }();

  _exports.IfcObjective = IfcObjective;

  var IfcOccupant = /*#__PURE__*/function () {
    function IfcOccupant(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {
      _classCallCheck(this, IfcOccupant);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.TheActor = TheActor;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcOccupant, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.TheActor);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var TheActor = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcOccupant(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType);
      }
    }]);

    return IfcOccupant;
  }();

  _exports.IfcOccupant = IfcOccupant;

  var IfcOffsetCurve = /*#__PURE__*/function () {
    function IfcOffsetCurve(expressID, type, BasisCurve) {
      _classCallCheck(this, IfcOffsetCurve);

      this.expressID = expressID;
      this.type = type;
      this.BasisCurve = BasisCurve;
    }

    _createClass(IfcOffsetCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisCurve);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisCurve = tape[ptr++];
        return new IfcOffsetCurve(expressID, type, BasisCurve);
      }
    }]);

    return IfcOffsetCurve;
  }();

  _exports.IfcOffsetCurve = IfcOffsetCurve;

  var IfcOffsetCurve2D = /*#__PURE__*/function () {
    function IfcOffsetCurve2D(expressID, type, BasisCurve, Distance, SelfIntersect) {
      _classCallCheck(this, IfcOffsetCurve2D);

      this.expressID = expressID;
      this.type = type;
      this.BasisCurve = BasisCurve;
      this.Distance = Distance;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcOffsetCurve2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisCurve);
        ;
        args.push(this.Distance);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisCurve = tape[ptr++];
        var Distance = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcOffsetCurve2D(expressID, type, BasisCurve, Distance, SelfIntersect);
      }
    }]);

    return IfcOffsetCurve2D;
  }();

  _exports.IfcOffsetCurve2D = IfcOffsetCurve2D;

  var IfcOffsetCurve3D = /*#__PURE__*/function () {
    function IfcOffsetCurve3D(expressID, type, BasisCurve, Distance, SelfIntersect, RefDirection) {
      _classCallCheck(this, IfcOffsetCurve3D);

      this.expressID = expressID;
      this.type = type;
      this.BasisCurve = BasisCurve;
      this.Distance = Distance;
      this.SelfIntersect = SelfIntersect;
      this.RefDirection = RefDirection;
    }

    _createClass(IfcOffsetCurve3D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisCurve);
        ;
        args.push(this.Distance);
        ;
        args.push(this.SelfIntersect);
        ;
        args.push(this.RefDirection);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisCurve = tape[ptr++];
        var Distance = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        var RefDirection = tape[ptr++];
        return new IfcOffsetCurve3D(expressID, type, BasisCurve, Distance, SelfIntersect, RefDirection);
      }
    }]);

    return IfcOffsetCurve3D;
  }();

  _exports.IfcOffsetCurve3D = IfcOffsetCurve3D;

  var IfcOffsetCurveByDistances = /*#__PURE__*/function () {
    function IfcOffsetCurveByDistances(expressID, type, BasisCurve, OffsetValues, Tag) {
      _classCallCheck(this, IfcOffsetCurveByDistances);

      this.expressID = expressID;
      this.type = type;
      this.BasisCurve = BasisCurve;
      this.OffsetValues = OffsetValues;
      this.Tag = Tag;
    }

    _createClass(IfcOffsetCurveByDistances, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisCurve);
        ;
        args.push(this.OffsetValues);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisCurve = tape[ptr++];
        var OffsetValues = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcOffsetCurveByDistances(expressID, type, BasisCurve, OffsetValues, Tag);
      }
    }]);

    return IfcOffsetCurveByDistances;
  }();

  _exports.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances;

  var IfcOpenShell = /*#__PURE__*/function () {
    function IfcOpenShell(expressID, type, CfsFaces) {
      _classCallCheck(this, IfcOpenShell);

      this.expressID = expressID;
      this.type = type;
      this.CfsFaces = CfsFaces;
    }

    _createClass(IfcOpenShell, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.CfsFaces);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var CfsFaces = tape[ptr++];
        return new IfcOpenShell(expressID, type, CfsFaces);
      }
    }]);

    return IfcOpenShell;
  }();

  _exports.IfcOpenShell = IfcOpenShell;

  var IfcOpeningElement = /*#__PURE__*/function () {
    function IfcOpeningElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcOpeningElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcOpeningElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcOpeningElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcOpeningElement;
  }();

  _exports.IfcOpeningElement = IfcOpeningElement;

  var IfcOpeningStandardCase = /*#__PURE__*/function () {
    function IfcOpeningStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcOpeningStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcOpeningStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcOpeningStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcOpeningStandardCase;
  }();

  _exports.IfcOpeningStandardCase = IfcOpeningStandardCase;

  var IfcOrganization = /*#__PURE__*/function () {
    function IfcOrganization(expressID, type, Identification, Name, Description, Roles, Addresses) {
      _classCallCheck(this, IfcOrganization);

      this.expressID = expressID;
      this.type = type;
      this.Identification = Identification;
      this.Name = Name;
      this.Description = Description;
      this.Roles = Roles;
      this.Addresses = Addresses;
    }

    _createClass(IfcOrganization, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Identification);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Roles);
        ;
        args.push(this.Addresses);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Identification = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Roles = tape[ptr++];
        var Addresses = tape[ptr++];
        return new IfcOrganization(expressID, type, Identification, Name, Description, Roles, Addresses);
      }
    }]);

    return IfcOrganization;
  }();

  _exports.IfcOrganization = IfcOrganization;

  var IfcOrganizationRelationship = /*#__PURE__*/function () {
    function IfcOrganizationRelationship(expressID, type, Name, Description, RelatingOrganization, RelatedOrganizations) {
      _classCallCheck(this, IfcOrganizationRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingOrganization = RelatingOrganization;
      this.RelatedOrganizations = RelatedOrganizations;
    }

    _createClass(IfcOrganizationRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingOrganization);
        ;
        args.push(this.RelatedOrganizations);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingOrganization = tape[ptr++];
        var RelatedOrganizations = tape[ptr++];
        return new IfcOrganizationRelationship(expressID, type, Name, Description, RelatingOrganization, RelatedOrganizations);
      }
    }]);

    return IfcOrganizationRelationship;
  }();

  _exports.IfcOrganizationRelationship = IfcOrganizationRelationship;

  var IfcOrientationExpression = /*#__PURE__*/function () {
    function IfcOrientationExpression(expressID, type, LateralAxisDirection, VerticalAxisDirection) {
      _classCallCheck(this, IfcOrientationExpression);

      this.expressID = expressID;
      this.type = type;
      this.LateralAxisDirection = LateralAxisDirection;
      this.VerticalAxisDirection = VerticalAxisDirection;
    }

    _createClass(IfcOrientationExpression, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.LateralAxisDirection);
        ;
        args.push(this.VerticalAxisDirection);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var LateralAxisDirection = tape[ptr++];
        var VerticalAxisDirection = tape[ptr++];
        return new IfcOrientationExpression(expressID, type, LateralAxisDirection, VerticalAxisDirection);
      }
    }]);

    return IfcOrientationExpression;
  }();

  _exports.IfcOrientationExpression = IfcOrientationExpression;

  var IfcOrientedEdge = /*#__PURE__*/function () {
    function IfcOrientedEdge(expressID, type, EdgeStart, EdgeEnd, EdgeElement, Orientation) {
      _classCallCheck(this, IfcOrientedEdge);

      this.expressID = expressID;
      this.type = type;
      this.EdgeStart = EdgeStart;
      this.EdgeEnd = EdgeEnd;
      this.EdgeElement = EdgeElement;
      this.Orientation = Orientation;
    }

    _createClass(IfcOrientedEdge, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.EdgeStart);
        ;
        args.push(this.EdgeEnd);
        ;
        args.push(this.EdgeElement);
        ;
        args.push(this.Orientation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var EdgeStart = tape[ptr++];
        var EdgeEnd = tape[ptr++];
        var EdgeElement = tape[ptr++];
        var Orientation = tape[ptr++];
        return new IfcOrientedEdge(expressID, type, EdgeStart, EdgeEnd, EdgeElement, Orientation);
      }
    }]);

    return IfcOrientedEdge;
  }();

  _exports.IfcOrientedEdge = IfcOrientedEdge;

  var IfcOuterBoundaryCurve = /*#__PURE__*/function () {
    function IfcOuterBoundaryCurve(expressID, type, Segments, SelfIntersect) {
      _classCallCheck(this, IfcOuterBoundaryCurve);

      this.expressID = expressID;
      this.type = type;
      this.Segments = Segments;
      this.SelfIntersect = SelfIntersect;
    }

    _createClass(IfcOuterBoundaryCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Segments);
        ;
        args.push(this.SelfIntersect);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Segments = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        return new IfcOuterBoundaryCurve(expressID, type, Segments, SelfIntersect);
      }
    }]);

    return IfcOuterBoundaryCurve;
  }();

  _exports.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;

  var IfcOutlet = /*#__PURE__*/function () {
    function IfcOutlet(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcOutlet);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcOutlet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcOutlet(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcOutlet;
  }();

  _exports.IfcOutlet = IfcOutlet;

  var IfcOutletType = /*#__PURE__*/function () {
    function IfcOutletType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcOutletType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcOutletType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcOutletType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcOutletType;
  }();

  _exports.IfcOutletType = IfcOutletType;

  var IfcOwnerHistory = /*#__PURE__*/function () {
    function IfcOwnerHistory(expressID, type, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {
      _classCallCheck(this, IfcOwnerHistory);

      this.expressID = expressID;
      this.type = type;
      this.OwningUser = OwningUser;
      this.OwningApplication = OwningApplication;
      this.State = State;
      this.ChangeAction = ChangeAction;
      this.LastModifiedDate = LastModifiedDate;
      this.LastModifyingUser = LastModifyingUser;
      this.LastModifyingApplication = LastModifyingApplication;
      this.CreationDate = CreationDate;
    }

    _createClass(IfcOwnerHistory, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.OwningUser);
        ;
        args.push(this.OwningApplication);
        ;
        args.push(this.State);
        ;
        args.push(this.ChangeAction);
        ;
        args.push(this.LastModifiedDate);
        ;
        args.push(this.LastModifyingUser);
        ;
        args.push(this.LastModifyingApplication);
        ;
        args.push(this.CreationDate);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var OwningUser = tape[ptr++];
        var OwningApplication = tape[ptr++];
        var State = tape[ptr++];
        var ChangeAction = tape[ptr++];
        var LastModifiedDate = tape[ptr++];
        var LastModifyingUser = tape[ptr++];
        var LastModifyingApplication = tape[ptr++];
        var CreationDate = tape[ptr++];
        return new IfcOwnerHistory(expressID, type, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate);
      }
    }]);

    return IfcOwnerHistory;
  }();

  _exports.IfcOwnerHistory = IfcOwnerHistory;

  var IfcParameterizedProfileDef = /*#__PURE__*/function () {
    function IfcParameterizedProfileDef(expressID, type, ProfileType, ProfileName, Position) {
      _classCallCheck(this, IfcParameterizedProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
    }

    _createClass(IfcParameterizedProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        return new IfcParameterizedProfileDef(expressID, type, ProfileType, ProfileName, Position);
      }
    }]);

    return IfcParameterizedProfileDef;
  }();

  _exports.IfcParameterizedProfileDef = IfcParameterizedProfileDef;

  var IfcPath = /*#__PURE__*/function () {
    function IfcPath(expressID, type, EdgeList) {
      _classCallCheck(this, IfcPath);

      this.expressID = expressID;
      this.type = type;
      this.EdgeList = EdgeList;
    }

    _createClass(IfcPath, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.EdgeList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var EdgeList = tape[ptr++];
        return new IfcPath(expressID, type, EdgeList);
      }
    }]);

    return IfcPath;
  }();

  _exports.IfcPath = IfcPath;

  var IfcPcurve = /*#__PURE__*/function () {
    function IfcPcurve(expressID, type, BasisSurface, ReferenceCurve) {
      _classCallCheck(this, IfcPcurve);

      this.expressID = expressID;
      this.type = type;
      this.BasisSurface = BasisSurface;
      this.ReferenceCurve = ReferenceCurve;
    }

    _createClass(IfcPcurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisSurface);
        ;
        args.push(this.ReferenceCurve);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisSurface = tape[ptr++];
        var ReferenceCurve = tape[ptr++];
        return new IfcPcurve(expressID, type, BasisSurface, ReferenceCurve);
      }
    }]);

    return IfcPcurve;
  }();

  _exports.IfcPcurve = IfcPcurve;

  var IfcPerformanceHistory = /*#__PURE__*/function () {
    function IfcPerformanceHistory(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {
      _classCallCheck(this, IfcPerformanceHistory);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.Identification = Identification;
      this.LifeCyclePhase = LifeCyclePhase;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPerformanceHistory, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LifeCyclePhase);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LifeCyclePhase = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPerformanceHistory(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType);
      }
    }]);

    return IfcPerformanceHistory;
  }();

  _exports.IfcPerformanceHistory = IfcPerformanceHistory;

  var IfcPermeableCoveringProperties = /*#__PURE__*/function () {
    function IfcPermeableCoveringProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
      _classCallCheck(this, IfcPermeableCoveringProperties);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcPermeableCoveringProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.PanelPosition);
        ;
        args.push(this.FrameDepth);
        ;
        args.push(this.FrameThickness);
        ;
        args.push(this.ShapeAspectStyle);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var OperationType = tape[ptr++];
        var PanelPosition = tape[ptr++];
        var FrameDepth = tape[ptr++];
        var FrameThickness = tape[ptr++];
        var ShapeAspectStyle = tape[ptr++];
        return new IfcPermeableCoveringProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle);
      }
    }]);

    return IfcPermeableCoveringProperties;
  }();

  _exports.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;

  var IfcPermit = /*#__PURE__*/function () {
    function IfcPermit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
      _classCallCheck(this, IfcPermit);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcPermit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Status);
        ;
        args.push(this.LongDescription);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Status = tape[ptr++];
        var LongDescription = tape[ptr++];
        return new IfcPermit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription);
      }
    }]);

    return IfcPermit;
  }();

  _exports.IfcPermit = IfcPermit;

  var IfcPerson = /*#__PURE__*/function () {
    function IfcPerson(expressID, type, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {
      _classCallCheck(this, IfcPerson);

      this.expressID = expressID;
      this.type = type;
      this.Identification = Identification;
      this.FamilyName = FamilyName;
      this.GivenName = GivenName;
      this.MiddleNames = MiddleNames;
      this.PrefixTitles = PrefixTitles;
      this.SuffixTitles = SuffixTitles;
      this.Roles = Roles;
      this.Addresses = Addresses;
    }

    _createClass(IfcPerson, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Identification);
        ;
        args.push(this.FamilyName);
        ;
        args.push(this.GivenName);
        ;
        args.push(this.MiddleNames);
        ;
        args.push(this.PrefixTitles);
        ;
        args.push(this.SuffixTitles);
        ;
        args.push(this.Roles);
        ;
        args.push(this.Addresses);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Identification = tape[ptr++];
        var FamilyName = tape[ptr++];
        var GivenName = tape[ptr++];
        var MiddleNames = tape[ptr++];
        var PrefixTitles = tape[ptr++];
        var SuffixTitles = tape[ptr++];
        var Roles = tape[ptr++];
        var Addresses = tape[ptr++];
        return new IfcPerson(expressID, type, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses);
      }
    }]);

    return IfcPerson;
  }();

  _exports.IfcPerson = IfcPerson;

  var IfcPersonAndOrganization = /*#__PURE__*/function () {
    function IfcPersonAndOrganization(expressID, type, ThePerson, TheOrganization, Roles) {
      _classCallCheck(this, IfcPersonAndOrganization);

      this.expressID = expressID;
      this.type = type;
      this.ThePerson = ThePerson;
      this.TheOrganization = TheOrganization;
      this.Roles = Roles;
    }

    _createClass(IfcPersonAndOrganization, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ThePerson);
        ;
        args.push(this.TheOrganization);
        ;
        args.push(this.Roles);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ThePerson = tape[ptr++];
        var TheOrganization = tape[ptr++];
        var Roles = tape[ptr++];
        return new IfcPersonAndOrganization(expressID, type, ThePerson, TheOrganization, Roles);
      }
    }]);

    return IfcPersonAndOrganization;
  }();

  _exports.IfcPersonAndOrganization = IfcPersonAndOrganization;

  var IfcPhysicalComplexQuantity = /*#__PURE__*/function () {
    function IfcPhysicalComplexQuantity(expressID, type, Name, Description, HasQuantities, Discrimination, Quality, Usage) {
      _classCallCheck(this, IfcPhysicalComplexQuantity);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.HasQuantities = HasQuantities;
      this.Discrimination = Discrimination;
      this.Quality = Quality;
      this.Usage = Usage;
    }

    _createClass(IfcPhysicalComplexQuantity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.HasQuantities);
        ;
        args.push(this.Discrimination);
        ;
        args.push(this.Quality);
        ;
        args.push(this.Usage);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var HasQuantities = tape[ptr++];
        var Discrimination = tape[ptr++];
        var Quality = tape[ptr++];
        var Usage = tape[ptr++];
        return new IfcPhysicalComplexQuantity(expressID, type, Name, Description, HasQuantities, Discrimination, Quality, Usage);
      }
    }]);

    return IfcPhysicalComplexQuantity;
  }();

  _exports.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;

  var IfcPhysicalQuantity = /*#__PURE__*/function () {
    function IfcPhysicalQuantity(expressID, type, Name, Description) {
      _classCallCheck(this, IfcPhysicalQuantity);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcPhysicalQuantity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcPhysicalQuantity(expressID, type, Name, Description);
      }
    }]);

    return IfcPhysicalQuantity;
  }();

  _exports.IfcPhysicalQuantity = IfcPhysicalQuantity;

  var IfcPhysicalSimpleQuantity = /*#__PURE__*/function () {
    function IfcPhysicalSimpleQuantity(expressID, type, Name, Description, Unit) {
      _classCallCheck(this, IfcPhysicalSimpleQuantity);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
    }

    _createClass(IfcPhysicalSimpleQuantity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        return new IfcPhysicalSimpleQuantity(expressID, type, Name, Description, Unit);
      }
    }]);

    return IfcPhysicalSimpleQuantity;
  }();

  _exports.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;

  var IfcPile = /*#__PURE__*/function () {
    function IfcPile(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {
      _classCallCheck(this, IfcPile);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.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;
    }

    _createClass(IfcPile, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.ConstructionType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var ConstructionType = tape[ptr++];
        return new IfcPile(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType);
      }
    }]);

    return IfcPile;
  }();

  _exports.IfcPile = IfcPile;

  var IfcPileType = /*#__PURE__*/function () {
    function IfcPileType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcPileType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPileType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPileType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcPileType;
  }();

  _exports.IfcPileType = IfcPileType;

  var IfcPipeFitting = /*#__PURE__*/function () {
    function IfcPipeFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcPipeFitting);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPipeFitting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPipeFitting(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcPipeFitting;
  }();

  _exports.IfcPipeFitting = IfcPipeFitting;

  var IfcPipeFittingType = /*#__PURE__*/function () {
    function IfcPipeFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcPipeFittingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPipeFittingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPipeFittingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcPipeFittingType;
  }();

  _exports.IfcPipeFittingType = IfcPipeFittingType;

  var IfcPipeSegment = /*#__PURE__*/function () {
    function IfcPipeSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcPipeSegment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPipeSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPipeSegment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcPipeSegment;
  }();

  _exports.IfcPipeSegment = IfcPipeSegment;

  var IfcPipeSegmentType = /*#__PURE__*/function () {
    function IfcPipeSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcPipeSegmentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPipeSegmentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPipeSegmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcPipeSegmentType;
  }();

  _exports.IfcPipeSegmentType = IfcPipeSegmentType;

  var IfcPixelTexture = /*#__PURE__*/function () {
    function IfcPixelTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {
      _classCallCheck(this, IfcPixelTexture);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcPixelTexture, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RepeatS);
        ;
        args.push(this.RepeatT);
        ;
        args.push(this.Mode);
        ;
        args.push(this.TextureTransform);
        ;
        args.push(this.Parameter);
        ;
        args.push(this.Width);
        ;
        args.push(this.Height);
        ;
        args.push(this.ColourComponents);
        ;
        args.push(this.Pixel);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RepeatS = tape[ptr++];
        var RepeatT = tape[ptr++];
        var Mode = tape[ptr++];
        var TextureTransform = tape[ptr++];
        var Parameter = tape[ptr++];
        var Width = tape[ptr++];
        var Height = tape[ptr++];
        var ColourComponents = tape[ptr++];
        var Pixel = tape[ptr++];
        return new IfcPixelTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel);
      }
    }]);

    return IfcPixelTexture;
  }();

  _exports.IfcPixelTexture = IfcPixelTexture;

  var IfcPlacement = /*#__PURE__*/function () {
    function IfcPlacement(expressID, type, Location) {
      _classCallCheck(this, IfcPlacement);

      this.expressID = expressID;
      this.type = type;
      this.Location = Location;
    }

    _createClass(IfcPlacement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Location);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Location = tape[ptr++];
        return new IfcPlacement(expressID, type, Location);
      }
    }]);

    return IfcPlacement;
  }();

  _exports.IfcPlacement = IfcPlacement;

  var IfcPlanarBox = /*#__PURE__*/function () {
    function IfcPlanarBox(expressID, type, SizeInX, SizeInY, Placement) {
      _classCallCheck(this, IfcPlanarBox);

      this.expressID = expressID;
      this.type = type;
      this.SizeInX = SizeInX;
      this.SizeInY = SizeInY;
      this.Placement = Placement;
    }

    _createClass(IfcPlanarBox, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SizeInX);
        ;
        args.push(this.SizeInY);
        ;
        args.push(this.Placement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SizeInX = tape[ptr++];
        var SizeInY = tape[ptr++];
        var Placement = tape[ptr++];
        return new IfcPlanarBox(expressID, type, SizeInX, SizeInY, Placement);
      }
    }]);

    return IfcPlanarBox;
  }();

  _exports.IfcPlanarBox = IfcPlanarBox;

  var IfcPlanarExtent = /*#__PURE__*/function () {
    function IfcPlanarExtent(expressID, type, SizeInX, SizeInY) {
      _classCallCheck(this, IfcPlanarExtent);

      this.expressID = expressID;
      this.type = type;
      this.SizeInX = SizeInX;
      this.SizeInY = SizeInY;
    }

    _createClass(IfcPlanarExtent, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SizeInX);
        ;
        args.push(this.SizeInY);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SizeInX = tape[ptr++];
        var SizeInY = tape[ptr++];
        return new IfcPlanarExtent(expressID, type, SizeInX, SizeInY);
      }
    }]);

    return IfcPlanarExtent;
  }();

  _exports.IfcPlanarExtent = IfcPlanarExtent;

  var IfcPlane = /*#__PURE__*/function () {
    function IfcPlane(expressID, type, Position) {
      _classCallCheck(this, IfcPlane);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
    }

    _createClass(IfcPlane, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        return new IfcPlane(expressID, type, Position);
      }
    }]);

    return IfcPlane;
  }();

  _exports.IfcPlane = IfcPlane;

  var IfcPlate = /*#__PURE__*/function () {
    function IfcPlate(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcPlate);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPlate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPlate(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcPlate;
  }();

  _exports.IfcPlate = IfcPlate;

  var IfcPlateStandardCase = /*#__PURE__*/function () {
    function IfcPlateStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcPlateStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPlateStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPlateStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcPlateStandardCase;
  }();

  _exports.IfcPlateStandardCase = IfcPlateStandardCase;

  var IfcPlateType = /*#__PURE__*/function () {
    function IfcPlateType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcPlateType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPlateType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPlateType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcPlateType;
  }();

  _exports.IfcPlateType = IfcPlateType;

  var IfcPoint = /*#__PURE__*/function () {
    function IfcPoint(expressID, type) {
      _classCallCheck(this, IfcPoint);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcPoint, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcPoint(expressID, type);
      }
    }]);

    return IfcPoint;
  }();

  _exports.IfcPoint = IfcPoint;

  var IfcPointOnCurve = /*#__PURE__*/function () {
    function IfcPointOnCurve(expressID, type, BasisCurve, PointParameter) {
      _classCallCheck(this, IfcPointOnCurve);

      this.expressID = expressID;
      this.type = type;
      this.BasisCurve = BasisCurve;
      this.PointParameter = PointParameter;
    }

    _createClass(IfcPointOnCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisCurve);
        ;
        args.push(this.PointParameter);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisCurve = tape[ptr++];
        var PointParameter = tape[ptr++];
        return new IfcPointOnCurve(expressID, type, BasisCurve, PointParameter);
      }
    }]);

    return IfcPointOnCurve;
  }();

  _exports.IfcPointOnCurve = IfcPointOnCurve;

  var IfcPointOnSurface = /*#__PURE__*/function () {
    function IfcPointOnSurface(expressID, type, BasisSurface, PointParameterU, PointParameterV) {
      _classCallCheck(this, IfcPointOnSurface);

      this.expressID = expressID;
      this.type = type;
      this.BasisSurface = BasisSurface;
      this.PointParameterU = PointParameterU;
      this.PointParameterV = PointParameterV;
    }

    _createClass(IfcPointOnSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisSurface);
        ;
        args.push(this.PointParameterU);
        ;
        args.push(this.PointParameterV);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisSurface = tape[ptr++];
        var PointParameterU = tape[ptr++];
        var PointParameterV = tape[ptr++];
        return new IfcPointOnSurface(expressID, type, BasisSurface, PointParameterU, PointParameterV);
      }
    }]);

    return IfcPointOnSurface;
  }();

  _exports.IfcPointOnSurface = IfcPointOnSurface;

  var IfcPolyLoop = /*#__PURE__*/function () {
    function IfcPolyLoop(expressID, type, Polygon) {
      _classCallCheck(this, IfcPolyLoop);

      this.expressID = expressID;
      this.type = type;
      this.Polygon = Polygon;
    }

    _createClass(IfcPolyLoop, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Polygon);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Polygon = tape[ptr++];
        return new IfcPolyLoop(expressID, type, Polygon);
      }
    }]);

    return IfcPolyLoop;
  }();

  _exports.IfcPolyLoop = IfcPolyLoop;

  var IfcPolygonalBoundedHalfSpace = /*#__PURE__*/function () {
    function IfcPolygonalBoundedHalfSpace(expressID, type, BaseSurface, AgreementFlag, Position, PolygonalBoundary) {
      _classCallCheck(this, IfcPolygonalBoundedHalfSpace);

      this.expressID = expressID;
      this.type = type;
      this.BaseSurface = BaseSurface;
      this.AgreementFlag = AgreementFlag;
      this.Position = Position;
      this.PolygonalBoundary = PolygonalBoundary;
    }

    _createClass(IfcPolygonalBoundedHalfSpace, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BaseSurface);
        ;
        args.push(this.AgreementFlag);
        ;
        args.push(this.Position);
        ;
        args.push(this.PolygonalBoundary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BaseSurface = tape[ptr++];
        var AgreementFlag = tape[ptr++];
        var Position = tape[ptr++];
        var PolygonalBoundary = tape[ptr++];
        return new IfcPolygonalBoundedHalfSpace(expressID, type, BaseSurface, AgreementFlag, Position, PolygonalBoundary);
      }
    }]);

    return IfcPolygonalBoundedHalfSpace;
  }();

  _exports.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;

  var IfcPolygonalFaceSet = /*#__PURE__*/function () {
    function IfcPolygonalFaceSet(expressID, type, Coordinates, Closed, Faces, PnIndex) {
      _classCallCheck(this, IfcPolygonalFaceSet);

      this.expressID = expressID;
      this.type = type;
      this.Coordinates = Coordinates;
      this.Closed = Closed;
      this.Faces = Faces;
      this.PnIndex = PnIndex;
    }

    _createClass(IfcPolygonalFaceSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Coordinates);
        ;
        args.push(this.Closed);
        ;
        args.push(this.Faces);
        ;
        args.push(this.PnIndex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Coordinates = tape[ptr++];
        var Closed = tape[ptr++];
        var Faces = tape[ptr++];
        var PnIndex = tape[ptr++];
        return new IfcPolygonalFaceSet(expressID, type, Coordinates, Closed, Faces, PnIndex);
      }
    }]);

    return IfcPolygonalFaceSet;
  }();

  _exports.IfcPolygonalFaceSet = IfcPolygonalFaceSet;

  var IfcPolyline = /*#__PURE__*/function () {
    function IfcPolyline(expressID, type, Points) {
      _classCallCheck(this, IfcPolyline);

      this.expressID = expressID;
      this.type = type;
      this.Points = Points;
    }

    _createClass(IfcPolyline, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Points);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Points = tape[ptr++];
        return new IfcPolyline(expressID, type, Points);
      }
    }]);

    return IfcPolyline;
  }();

  _exports.IfcPolyline = IfcPolyline;

  var IfcPort = /*#__PURE__*/function () {
    function IfcPort(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
      _classCallCheck(this, IfcPort);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
    }

    _createClass(IfcPort, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        return new IfcPort(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
      }
    }]);

    return IfcPort;
  }();

  _exports.IfcPort = IfcPort;

  var IfcPositioningElement = /*#__PURE__*/function () {
    function IfcPositioningElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
      _classCallCheck(this, IfcPositioningElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
    }

    _createClass(IfcPositioningElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        return new IfcPositioningElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
      }
    }]);

    return IfcPositioningElement;
  }();

  _exports.IfcPositioningElement = IfcPositioningElement;

  var IfcPostalAddress = /*#__PURE__*/function () {
    function IfcPostalAddress(expressID, type, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {
      _classCallCheck(this, IfcPostalAddress);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcPostalAddress, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Purpose);
        ;
        args.push(this.Description);
        ;
        args.push(this.UserDefinedPurpose);
        ;
        args.push(this.InternalLocation);
        ;
        args.push(this.AddressLines);
        ;
        args.push(this.PostalBox);
        ;
        args.push(this.Town);
        ;
        args.push(this.Region);
        ;
        args.push(this.PostalCode);
        ;
        args.push(this.Country);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Purpose = tape[ptr++];
        var Description = tape[ptr++];
        var UserDefinedPurpose = tape[ptr++];
        var InternalLocation = tape[ptr++];
        var AddressLines = tape[ptr++];
        var PostalBox = tape[ptr++];
        var Town = tape[ptr++];
        var Region = tape[ptr++];
        var PostalCode = tape[ptr++];
        var Country = tape[ptr++];
        return new IfcPostalAddress(expressID, type, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country);
      }
    }]);

    return IfcPostalAddress;
  }();

  _exports.IfcPostalAddress = IfcPostalAddress;

  var IfcPreDefinedColour = /*#__PURE__*/function () {
    function IfcPreDefinedColour(expressID, type, Name) {
      _classCallCheck(this, IfcPreDefinedColour);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcPreDefinedColour, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcPreDefinedColour(expressID, type, Name);
      }
    }]);

    return IfcPreDefinedColour;
  }();

  _exports.IfcPreDefinedColour = IfcPreDefinedColour;

  var IfcPreDefinedCurveFont = /*#__PURE__*/function () {
    function IfcPreDefinedCurveFont(expressID, type, Name) {
      _classCallCheck(this, IfcPreDefinedCurveFont);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcPreDefinedCurveFont, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcPreDefinedCurveFont(expressID, type, Name);
      }
    }]);

    return IfcPreDefinedCurveFont;
  }();

  _exports.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;

  var IfcPreDefinedItem = /*#__PURE__*/function () {
    function IfcPreDefinedItem(expressID, type, Name) {
      _classCallCheck(this, IfcPreDefinedItem);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcPreDefinedItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcPreDefinedItem(expressID, type, Name);
      }
    }]);

    return IfcPreDefinedItem;
  }();

  _exports.IfcPreDefinedItem = IfcPreDefinedItem;

  var IfcPreDefinedProperties = /*#__PURE__*/function () {
    function IfcPreDefinedProperties(expressID, type) {
      _classCallCheck(this, IfcPreDefinedProperties);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcPreDefinedProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcPreDefinedProperties(expressID, type);
      }
    }]);

    return IfcPreDefinedProperties;
  }();

  _exports.IfcPreDefinedProperties = IfcPreDefinedProperties;

  var IfcPreDefinedPropertySet = /*#__PURE__*/function () {
    function IfcPreDefinedPropertySet(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcPreDefinedPropertySet);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcPreDefinedPropertySet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcPreDefinedPropertySet(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcPreDefinedPropertySet;
  }();

  _exports.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;

  var IfcPreDefinedTextFont = /*#__PURE__*/function () {
    function IfcPreDefinedTextFont(expressID, type, Name) {
      _classCallCheck(this, IfcPreDefinedTextFont);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcPreDefinedTextFont, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcPreDefinedTextFont(expressID, type, Name);
      }
    }]);

    return IfcPreDefinedTextFont;
  }();

  _exports.IfcPreDefinedTextFont = IfcPreDefinedTextFont;

  var IfcPresentationItem = /*#__PURE__*/function () {
    function IfcPresentationItem(expressID, type) {
      _classCallCheck(this, IfcPresentationItem);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcPresentationItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcPresentationItem(expressID, type);
      }
    }]);

    return IfcPresentationItem;
  }();

  _exports.IfcPresentationItem = IfcPresentationItem;

  var IfcPresentationLayerAssignment = /*#__PURE__*/function () {
    function IfcPresentationLayerAssignment(expressID, type, Name, Description, AssignedItems, Identifier) {
      _classCallCheck(this, IfcPresentationLayerAssignment);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.AssignedItems = AssignedItems;
      this.Identifier = Identifier;
    }

    _createClass(IfcPresentationLayerAssignment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.AssignedItems);
        ;
        args.push(this.Identifier);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var AssignedItems = tape[ptr++];
        var Identifier = tape[ptr++];
        return new IfcPresentationLayerAssignment(expressID, type, Name, Description, AssignedItems, Identifier);
      }
    }]);

    return IfcPresentationLayerAssignment;
  }();

  _exports.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;

  var IfcPresentationLayerWithStyle = /*#__PURE__*/function () {
    function IfcPresentationLayerWithStyle(expressID, type, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {
      _classCallCheck(this, IfcPresentationLayerWithStyle);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.AssignedItems = AssignedItems;
      this.Identifier = Identifier;
      this.LayerOn = LayerOn;
      this.LayerFrozen = LayerFrozen;
      this.LayerBlocked = LayerBlocked;
      this.LayerStyles = LayerStyles;
    }

    _createClass(IfcPresentationLayerWithStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.AssignedItems);
        ;
        args.push(this.Identifier);
        ;
        args.push(this.LayerOn);
        ;
        args.push(this.LayerFrozen);
        ;
        args.push(this.LayerBlocked);
        ;
        args.push(this.LayerStyles);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var AssignedItems = tape[ptr++];
        var Identifier = tape[ptr++];
        var LayerOn = tape[ptr++];
        var LayerFrozen = tape[ptr++];
        var LayerBlocked = tape[ptr++];
        var LayerStyles = tape[ptr++];
        return new IfcPresentationLayerWithStyle(expressID, type, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles);
      }
    }]);

    return IfcPresentationLayerWithStyle;
  }();

  _exports.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;

  var IfcPresentationStyle = /*#__PURE__*/function () {
    function IfcPresentationStyle(expressID, type, Name) {
      _classCallCheck(this, IfcPresentationStyle);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcPresentationStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcPresentationStyle(expressID, type, Name);
      }
    }]);

    return IfcPresentationStyle;
  }();

  _exports.IfcPresentationStyle = IfcPresentationStyle;

  var IfcPresentationStyleAssignment = /*#__PURE__*/function () {
    function IfcPresentationStyleAssignment(expressID, type, Styles) {
      _classCallCheck(this, IfcPresentationStyleAssignment);

      this.expressID = expressID;
      this.type = type;
      this.Styles = Styles;
    }

    _createClass(IfcPresentationStyleAssignment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Styles);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Styles = tape[ptr++];
        return new IfcPresentationStyleAssignment(expressID, type, Styles);
      }
    }]);

    return IfcPresentationStyleAssignment;
  }();

  _exports.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;

  var IfcProcedure = /*#__PURE__*/function () {
    function IfcProcedure(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {
      _classCallCheck(this, IfcProcedure);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.Identification = Identification;
      this.LongDescription = LongDescription;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcProcedure, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProcedure(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType);
      }
    }]);

    return IfcProcedure;
  }();

  _exports.IfcProcedure = IfcProcedure;

  var IfcProcedureType = /*#__PURE__*/function () {
    function IfcProcedureType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {
      _classCallCheck(this, IfcProcedureType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcProcedureType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ProcessType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ProcessType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProcedureType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType);
      }
    }]);

    return IfcProcedureType;
  }();

  _exports.IfcProcedureType = IfcProcedureType;

  var IfcProcess = /*#__PURE__*/function () {
    function IfcProcess(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {
      _classCallCheck(this, IfcProcess);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.Identification = Identification;
      this.LongDescription = LongDescription;
    }

    _createClass(IfcProcess, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        return new IfcProcess(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
      }
    }]);

    return IfcProcess;
  }();

  _exports.IfcProcess = IfcProcess;

  var IfcProduct = /*#__PURE__*/function () {
    function IfcProduct(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
      _classCallCheck(this, IfcProduct);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
    }

    _createClass(IfcProduct, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        return new IfcProduct(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
      }
    }]);

    return IfcProduct;
  }();

  _exports.IfcProduct = IfcProduct;

  var IfcProductDefinitionShape = /*#__PURE__*/function () {
    function IfcProductDefinitionShape(expressID, type, Name, Description, Representations) {
      _classCallCheck(this, IfcProductDefinitionShape);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Representations = Representations;
    }

    _createClass(IfcProductDefinitionShape, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Representations);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Representations = tape[ptr++];
        return new IfcProductDefinitionShape(expressID, type, Name, Description, Representations);
      }
    }]);

    return IfcProductDefinitionShape;
  }();

  _exports.IfcProductDefinitionShape = IfcProductDefinitionShape;

  var IfcProductRepresentation = /*#__PURE__*/function () {
    function IfcProductRepresentation(expressID, type, Name, Description, Representations) {
      _classCallCheck(this, IfcProductRepresentation);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Representations = Representations;
    }

    _createClass(IfcProductRepresentation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Representations);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Representations = tape[ptr++];
        return new IfcProductRepresentation(expressID, type, Name, Description, Representations);
      }
    }]);

    return IfcProductRepresentation;
  }();

  _exports.IfcProductRepresentation = IfcProductRepresentation;

  var IfcProfileDef = /*#__PURE__*/function () {
    function IfcProfileDef(expressID, type, ProfileType, ProfileName) {
      _classCallCheck(this, IfcProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
    }

    _createClass(IfcProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        return new IfcProfileDef(expressID, type, ProfileType, ProfileName);
      }
    }]);

    return IfcProfileDef;
  }();

  _exports.IfcProfileDef = IfcProfileDef;

  var IfcProfileProperties = /*#__PURE__*/function () {
    function IfcProfileProperties(expressID, type, Name, Description, Properties, ProfileDefinition) {
      _classCallCheck(this, IfcProfileProperties);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Properties = Properties;
      this.ProfileDefinition = ProfileDefinition;
    }

    _createClass(IfcProfileProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Properties);
        ;
        args.push(this.ProfileDefinition);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Properties = tape[ptr++];
        var ProfileDefinition = tape[ptr++];
        return new IfcProfileProperties(expressID, type, Name, Description, Properties, ProfileDefinition);
      }
    }]);

    return IfcProfileProperties;
  }();

  _exports.IfcProfileProperties = IfcProfileProperties;

  var IfcProject = /*#__PURE__*/function () {
    function IfcProject(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
      _classCallCheck(this, IfcProject);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcProject, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.LongName);
        ;
        args.push(this.Phase);
        ;
        args.push(this.RepresentationContexts);
        ;
        args.push(this.UnitsInContext);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var LongName = tape[ptr++];
        var Phase = tape[ptr++];
        var RepresentationContexts = tape[ptr++];
        var UnitsInContext = tape[ptr++];
        return new IfcProject(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
      }
    }]);

    return IfcProject;
  }();

  _exports.IfcProject = IfcProject;

  var IfcProjectLibrary = /*#__PURE__*/function () {
    function IfcProjectLibrary(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
      _classCallCheck(this, IfcProjectLibrary);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcProjectLibrary, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.LongName);
        ;
        args.push(this.Phase);
        ;
        args.push(this.RepresentationContexts);
        ;
        args.push(this.UnitsInContext);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var LongName = tape[ptr++];
        var Phase = tape[ptr++];
        var RepresentationContexts = tape[ptr++];
        var UnitsInContext = tape[ptr++];
        return new IfcProjectLibrary(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
      }
    }]);

    return IfcProjectLibrary;
  }();

  _exports.IfcProjectLibrary = IfcProjectLibrary;

  var IfcProjectOrder = /*#__PURE__*/function () {
    function IfcProjectOrder(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
      _classCallCheck(this, IfcProjectOrder);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcProjectOrder, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Status);
        ;
        args.push(this.LongDescription);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Status = tape[ptr++];
        var LongDescription = tape[ptr++];
        return new IfcProjectOrder(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription);
      }
    }]);

    return IfcProjectOrder;
  }();

  _exports.IfcProjectOrder = IfcProjectOrder;

  var IfcProjectedCRS = /*#__PURE__*/function () {
    function IfcProjectedCRS(expressID, type, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {
      _classCallCheck(this, IfcProjectedCRS);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.GeodeticDatum = GeodeticDatum;
      this.VerticalDatum = VerticalDatum;
      this.MapProjection = MapProjection;
      this.MapZone = MapZone;
      this.MapUnit = MapUnit;
    }

    _createClass(IfcProjectedCRS, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.GeodeticDatum);
        ;
        args.push(this.VerticalDatum);
        ;
        args.push(this.MapProjection);
        ;
        args.push(this.MapZone);
        ;
        args.push(this.MapUnit);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var GeodeticDatum = tape[ptr++];
        var VerticalDatum = tape[ptr++];
        var MapProjection = tape[ptr++];
        var MapZone = tape[ptr++];
        var MapUnit = tape[ptr++];
        return new IfcProjectedCRS(expressID, type, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit);
      }
    }]);

    return IfcProjectedCRS;
  }();

  _exports.IfcProjectedCRS = IfcProjectedCRS;

  var IfcProjectionElement = /*#__PURE__*/function () {
    function IfcProjectionElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcProjectionElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcProjectionElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProjectionElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcProjectionElement;
  }();

  _exports.IfcProjectionElement = IfcProjectionElement;

  var IfcProperty = /*#__PURE__*/function () {
    function IfcProperty(expressID, type, Name, Description) {
      _classCallCheck(this, IfcProperty);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcProperty, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcProperty(expressID, type, Name, Description);
      }
    }]);

    return IfcProperty;
  }();

  _exports.IfcProperty = IfcProperty;

  var IfcPropertyAbstraction = /*#__PURE__*/function () {
    function IfcPropertyAbstraction(expressID, type) {
      _classCallCheck(this, IfcPropertyAbstraction);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcPropertyAbstraction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcPropertyAbstraction(expressID, type);
      }
    }]);

    return IfcPropertyAbstraction;
  }();

  _exports.IfcPropertyAbstraction = IfcPropertyAbstraction;

  var IfcPropertyBoundedValue = /*#__PURE__*/function () {
    function IfcPropertyBoundedValue(expressID, type, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {
      _classCallCheck(this, IfcPropertyBoundedValue);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.UpperBoundValue = UpperBoundValue;
      this.LowerBoundValue = LowerBoundValue;
      this.Unit = Unit;
      this.SetPointValue = SetPointValue;
    }

    _createClass(IfcPropertyBoundedValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.UpperBoundValue);
        ;
        args.push(this.LowerBoundValue);
        ;
        args.push(this.Unit);
        ;
        args.push(this.SetPointValue);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var UpperBoundValue = tape[ptr++];
        var LowerBoundValue = tape[ptr++];
        var Unit = tape[ptr++];
        var SetPointValue = tape[ptr++];
        return new IfcPropertyBoundedValue(expressID, type, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue);
      }
    }]);

    return IfcPropertyBoundedValue;
  }();

  _exports.IfcPropertyBoundedValue = IfcPropertyBoundedValue;

  var IfcPropertyDefinition = /*#__PURE__*/function () {
    function IfcPropertyDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcPropertyDefinition);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcPropertyDefinition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcPropertyDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcPropertyDefinition;
  }();

  _exports.IfcPropertyDefinition = IfcPropertyDefinition;

  var IfcPropertyDependencyRelationship = /*#__PURE__*/function () {
    function IfcPropertyDependencyRelationship(expressID, type, Name, Description, DependingProperty, DependantProperty, Expression) {
      _classCallCheck(this, IfcPropertyDependencyRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.DependingProperty = DependingProperty;
      this.DependantProperty = DependantProperty;
      this.Expression = Expression;
    }

    _createClass(IfcPropertyDependencyRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.DependingProperty);
        ;
        args.push(this.DependantProperty);
        ;
        args.push(this.Expression);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var DependingProperty = tape[ptr++];
        var DependantProperty = tape[ptr++];
        var Expression = tape[ptr++];
        return new IfcPropertyDependencyRelationship(expressID, type, Name, Description, DependingProperty, DependantProperty, Expression);
      }
    }]);

    return IfcPropertyDependencyRelationship;
  }();

  _exports.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;

  var IfcPropertyEnumeratedValue = /*#__PURE__*/function () {
    function IfcPropertyEnumeratedValue(expressID, type, Name, Description, EnumerationValues, EnumerationReference) {
      _classCallCheck(this, IfcPropertyEnumeratedValue);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.EnumerationValues = EnumerationValues;
      this.EnumerationReference = EnumerationReference;
    }

    _createClass(IfcPropertyEnumeratedValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.EnumerationValues);
        ;
        args.push(this.EnumerationReference);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var EnumerationValues = tape[ptr++];
        var EnumerationReference = tape[ptr++];
        return new IfcPropertyEnumeratedValue(expressID, type, Name, Description, EnumerationValues, EnumerationReference);
      }
    }]);

    return IfcPropertyEnumeratedValue;
  }();

  _exports.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;

  var IfcPropertyEnumeration = /*#__PURE__*/function () {
    function IfcPropertyEnumeration(expressID, type, Name, EnumerationValues, Unit) {
      _classCallCheck(this, IfcPropertyEnumeration);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.EnumerationValues = EnumerationValues;
      this.Unit = Unit;
    }

    _createClass(IfcPropertyEnumeration, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.EnumerationValues);
        ;
        args.push(this.Unit);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var EnumerationValues = tape[ptr++];
        var Unit = tape[ptr++];
        return new IfcPropertyEnumeration(expressID, type, Name, EnumerationValues, Unit);
      }
    }]);

    return IfcPropertyEnumeration;
  }();

  _exports.IfcPropertyEnumeration = IfcPropertyEnumeration;

  var IfcPropertyListValue = /*#__PURE__*/function () {
    function IfcPropertyListValue(expressID, type, Name, Description, ListValues, Unit) {
      _classCallCheck(this, IfcPropertyListValue);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.ListValues = ListValues;
      this.Unit = Unit;
    }

    _createClass(IfcPropertyListValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ListValues);
        ;
        args.push(this.Unit);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ListValues = tape[ptr++];
        var Unit = tape[ptr++];
        return new IfcPropertyListValue(expressID, type, Name, Description, ListValues, Unit);
      }
    }]);

    return IfcPropertyListValue;
  }();

  _exports.IfcPropertyListValue = IfcPropertyListValue;

  var IfcPropertyReferenceValue = /*#__PURE__*/function () {
    function IfcPropertyReferenceValue(expressID, type, Name, Description, UsageName, PropertyReference) {
      _classCallCheck(this, IfcPropertyReferenceValue);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.UsageName = UsageName;
      this.PropertyReference = PropertyReference;
    }

    _createClass(IfcPropertyReferenceValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.UsageName);
        ;
        args.push(this.PropertyReference);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var UsageName = tape[ptr++];
        var PropertyReference = tape[ptr++];
        return new IfcPropertyReferenceValue(expressID, type, Name, Description, UsageName, PropertyReference);
      }
    }]);

    return IfcPropertyReferenceValue;
  }();

  _exports.IfcPropertyReferenceValue = IfcPropertyReferenceValue;

  var IfcPropertySet = /*#__PURE__*/function () {
    function IfcPropertySet(expressID, type, GlobalId, OwnerHistory, Name, Description, HasProperties) {
      _classCallCheck(this, IfcPropertySet);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.HasProperties = HasProperties;
    }

    _createClass(IfcPropertySet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.HasProperties);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var HasProperties = tape[ptr++];
        return new IfcPropertySet(expressID, type, GlobalId, OwnerHistory, Name, Description, HasProperties);
      }
    }]);

    return IfcPropertySet;
  }();

  _exports.IfcPropertySet = IfcPropertySet;

  var IfcPropertySetDefinition = /*#__PURE__*/function () {
    function IfcPropertySetDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcPropertySetDefinition);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcPropertySetDefinition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcPropertySetDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcPropertySetDefinition;
  }();

  _exports.IfcPropertySetDefinition = IfcPropertySetDefinition;

  var IfcPropertySetTemplate = /*#__PURE__*/function () {
    function IfcPropertySetTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {
      _classCallCheck(this, IfcPropertySetTemplate);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.TemplateType = TemplateType;
      this.ApplicableEntity = ApplicableEntity;
      this.HasPropertyTemplates = HasPropertyTemplates;
    }

    _createClass(IfcPropertySetTemplate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.TemplateType);
        ;
        args.push(this.ApplicableEntity);
        ;
        args.push(this.HasPropertyTemplates);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var TemplateType = tape[ptr++];
        var ApplicableEntity = tape[ptr++];
        var HasPropertyTemplates = tape[ptr++];
        return new IfcPropertySetTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates);
      }
    }]);

    return IfcPropertySetTemplate;
  }();

  _exports.IfcPropertySetTemplate = IfcPropertySetTemplate;

  var IfcPropertySingleValue = /*#__PURE__*/function () {
    function IfcPropertySingleValue(expressID, type, Name, Description, NominalValue, Unit) {
      _classCallCheck(this, IfcPropertySingleValue);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.NominalValue = NominalValue;
      this.Unit = Unit;
    }

    _createClass(IfcPropertySingleValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.NominalValue);
        ;
        args.push(this.Unit);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var NominalValue = tape[ptr++];
        var Unit = tape[ptr++];
        return new IfcPropertySingleValue(expressID, type, Name, Description, NominalValue, Unit);
      }
    }]);

    return IfcPropertySingleValue;
  }();

  _exports.IfcPropertySingleValue = IfcPropertySingleValue;

  var IfcPropertyTableValue = /*#__PURE__*/function () {
    function IfcPropertyTableValue(expressID, type, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {
      _classCallCheck(this, IfcPropertyTableValue);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.DefiningValues = DefiningValues;
      this.DefinedValues = DefinedValues;
      this.Expression = Expression;
      this.DefiningUnit = DefiningUnit;
      this.DefinedUnit = DefinedUnit;
      this.CurveInterpolation = CurveInterpolation;
    }

    _createClass(IfcPropertyTableValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.DefiningValues);
        ;
        args.push(this.DefinedValues);
        ;
        args.push(this.Expression);
        ;
        args.push(this.DefiningUnit);
        ;
        args.push(this.DefinedUnit);
        ;
        args.push(this.CurveInterpolation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var DefiningValues = tape[ptr++];
        var DefinedValues = tape[ptr++];
        var Expression = tape[ptr++];
        var DefiningUnit = tape[ptr++];
        var DefinedUnit = tape[ptr++];
        var CurveInterpolation = tape[ptr++];
        return new IfcPropertyTableValue(expressID, type, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation);
      }
    }]);

    return IfcPropertyTableValue;
  }();

  _exports.IfcPropertyTableValue = IfcPropertyTableValue;

  var IfcPropertyTemplate = /*#__PURE__*/function () {
    function IfcPropertyTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcPropertyTemplate);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcPropertyTemplate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcPropertyTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcPropertyTemplate;
  }();

  _exports.IfcPropertyTemplate = IfcPropertyTemplate;

  var IfcPropertyTemplateDefinition = /*#__PURE__*/function () {
    function IfcPropertyTemplateDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcPropertyTemplateDefinition);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcPropertyTemplateDefinition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcPropertyTemplateDefinition(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcPropertyTemplateDefinition;
  }();

  _exports.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;

  var IfcProtectiveDevice = /*#__PURE__*/function () {
    function IfcProtectiveDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcProtectiveDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcProtectiveDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProtectiveDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcProtectiveDevice;
  }();

  _exports.IfcProtectiveDevice = IfcProtectiveDevice;

  var IfcProtectiveDeviceTrippingUnit = /*#__PURE__*/function () {
    function IfcProtectiveDeviceTrippingUnit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcProtectiveDeviceTrippingUnit);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcProtectiveDeviceTrippingUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProtectiveDeviceTrippingUnit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcProtectiveDeviceTrippingUnit;
  }();

  _exports.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;

  var IfcProtectiveDeviceTrippingUnitType = /*#__PURE__*/function () {
    function IfcProtectiveDeviceTrippingUnitType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcProtectiveDeviceTrippingUnitType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcProtectiveDeviceTrippingUnitType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProtectiveDeviceTrippingUnitType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcProtectiveDeviceTrippingUnitType;
  }();

  _exports.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;

  var IfcProtectiveDeviceType = /*#__PURE__*/function () {
    function IfcProtectiveDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcProtectiveDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcProtectiveDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcProtectiveDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcProtectiveDeviceType;
  }();

  _exports.IfcProtectiveDeviceType = IfcProtectiveDeviceType;

  var IfcProxy = /*#__PURE__*/function () {
    function IfcProxy(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {
      _classCallCheck(this, IfcProxy);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcProxy, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.ProxyType);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var ProxyType = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcProxy(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag);
      }
    }]);

    return IfcProxy;
  }();

  _exports.IfcProxy = IfcProxy;

  var IfcPump = /*#__PURE__*/function () {
    function IfcPump(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcPump);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPump, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPump(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcPump;
  }();

  _exports.IfcPump = IfcPump;

  var IfcPumpType = /*#__PURE__*/function () {
    function IfcPumpType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcPumpType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcPumpType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcPumpType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcPumpType;
  }();

  _exports.IfcPumpType = IfcPumpType;

  var IfcQuantityArea = /*#__PURE__*/function () {
    function IfcQuantityArea(expressID, type, Name, Description, Unit, AreaValue, Formula) {
      _classCallCheck(this, IfcQuantityArea);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.AreaValue = AreaValue;
      this.Formula = Formula;
    }

    _createClass(IfcQuantityArea, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.AreaValue);
        ;
        args.push(this.Formula);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var AreaValue = tape[ptr++];
        var Formula = tape[ptr++];
        return new IfcQuantityArea(expressID, type, Name, Description, Unit, AreaValue, Formula);
      }
    }]);

    return IfcQuantityArea;
  }();

  _exports.IfcQuantityArea = IfcQuantityArea;

  var IfcQuantityCount = /*#__PURE__*/function () {
    function IfcQuantityCount(expressID, type, Name, Description, Unit, CountValue, Formula) {
      _classCallCheck(this, IfcQuantityCount);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.CountValue = CountValue;
      this.Formula = Formula;
    }

    _createClass(IfcQuantityCount, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.CountValue);
        ;
        args.push(this.Formula);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var CountValue = tape[ptr++];
        var Formula = tape[ptr++];
        return new IfcQuantityCount(expressID, type, Name, Description, Unit, CountValue, Formula);
      }
    }]);

    return IfcQuantityCount;
  }();

  _exports.IfcQuantityCount = IfcQuantityCount;

  var IfcQuantityLength = /*#__PURE__*/function () {
    function IfcQuantityLength(expressID, type, Name, Description, Unit, LengthValue, Formula) {
      _classCallCheck(this, IfcQuantityLength);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.LengthValue = LengthValue;
      this.Formula = Formula;
    }

    _createClass(IfcQuantityLength, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.LengthValue);
        ;
        args.push(this.Formula);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var LengthValue = tape[ptr++];
        var Formula = tape[ptr++];
        return new IfcQuantityLength(expressID, type, Name, Description, Unit, LengthValue, Formula);
      }
    }]);

    return IfcQuantityLength;
  }();

  _exports.IfcQuantityLength = IfcQuantityLength;

  var IfcQuantitySet = /*#__PURE__*/function () {
    function IfcQuantitySet(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcQuantitySet);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcQuantitySet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcQuantitySet(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcQuantitySet;
  }();

  _exports.IfcQuantitySet = IfcQuantitySet;

  var IfcQuantityTime = /*#__PURE__*/function () {
    function IfcQuantityTime(expressID, type, Name, Description, Unit, TimeValue, Formula) {
      _classCallCheck(this, IfcQuantityTime);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.TimeValue = TimeValue;
      this.Formula = Formula;
    }

    _createClass(IfcQuantityTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.TimeValue);
        ;
        args.push(this.Formula);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var TimeValue = tape[ptr++];
        var Formula = tape[ptr++];
        return new IfcQuantityTime(expressID, type, Name, Description, Unit, TimeValue, Formula);
      }
    }]);

    return IfcQuantityTime;
  }();

  _exports.IfcQuantityTime = IfcQuantityTime;

  var IfcQuantityVolume = /*#__PURE__*/function () {
    function IfcQuantityVolume(expressID, type, Name, Description, Unit, VolumeValue, Formula) {
      _classCallCheck(this, IfcQuantityVolume);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.VolumeValue = VolumeValue;
      this.Formula = Formula;
    }

    _createClass(IfcQuantityVolume, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.VolumeValue);
        ;
        args.push(this.Formula);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var VolumeValue = tape[ptr++];
        var Formula = tape[ptr++];
        return new IfcQuantityVolume(expressID, type, Name, Description, Unit, VolumeValue, Formula);
      }
    }]);

    return IfcQuantityVolume;
  }();

  _exports.IfcQuantityVolume = IfcQuantityVolume;

  var IfcQuantityWeight = /*#__PURE__*/function () {
    function IfcQuantityWeight(expressID, type, Name, Description, Unit, WeightValue, Formula) {
      _classCallCheck(this, IfcQuantityWeight);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.WeightValue = WeightValue;
      this.Formula = Formula;
    }

    _createClass(IfcQuantityWeight, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.WeightValue);
        ;
        args.push(this.Formula);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var WeightValue = tape[ptr++];
        var Formula = tape[ptr++];
        return new IfcQuantityWeight(expressID, type, Name, Description, Unit, WeightValue, Formula);
      }
    }]);

    return IfcQuantityWeight;
  }();

  _exports.IfcQuantityWeight = IfcQuantityWeight;

  var IfcRailing = /*#__PURE__*/function () {
    function IfcRailing(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcRailing);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRailing, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRailing(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcRailing;
  }();

  _exports.IfcRailing = IfcRailing;

  var IfcRailingType = /*#__PURE__*/function () {
    function IfcRailingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcRailingType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRailingType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRailingType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcRailingType;
  }();

  _exports.IfcRailingType = IfcRailingType;

  var IfcRamp = /*#__PURE__*/function () {
    function IfcRamp(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcRamp);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRamp, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRamp(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcRamp;
  }();

  _exports.IfcRamp = IfcRamp;

  var IfcRampFlight = /*#__PURE__*/function () {
    function IfcRampFlight(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcRampFlight);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRampFlight, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRampFlight(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcRampFlight;
  }();

  _exports.IfcRampFlight = IfcRampFlight;

  var IfcRampFlightType = /*#__PURE__*/function () {
    function IfcRampFlightType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcRampFlightType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRampFlightType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRampFlightType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcRampFlightType;
  }();

  _exports.IfcRampFlightType = IfcRampFlightType;

  var IfcRampType = /*#__PURE__*/function () {
    function IfcRampType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcRampType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRampType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRampType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcRampType;
  }();

  _exports.IfcRampType = IfcRampType;

  var IfcRationalBSplineCurveWithKnots = /*#__PURE__*/function () {
    function IfcRationalBSplineCurveWithKnots(expressID, type, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {
      _classCallCheck(this, IfcRationalBSplineCurveWithKnots);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRationalBSplineCurveWithKnots, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Degree);
        ;
        args.push(this.ControlPointsList);
        ;
        args.push(this.CurveForm);
        ;
        args.push(this.ClosedCurve);
        ;
        args.push(this.SelfIntersect);
        ;
        args.push(this.KnotMultiplicities);
        ;
        args.push(this.Knots);
        ;
        args.push(this.KnotSpec);
        ;
        args.push(this.WeightsData);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Degree = tape[ptr++];
        var ControlPointsList = tape[ptr++];
        var CurveForm = tape[ptr++];
        var ClosedCurve = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        var KnotMultiplicities = tape[ptr++];
        var Knots = tape[ptr++];
        var KnotSpec = tape[ptr++];
        var WeightsData = tape[ptr++];
        return new IfcRationalBSplineCurveWithKnots(expressID, type, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData);
      }
    }]);

    return IfcRationalBSplineCurveWithKnots;
  }();

  _exports.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;

  var IfcRationalBSplineSurfaceWithKnots = /*#__PURE__*/function () {
    function IfcRationalBSplineSurfaceWithKnots(expressID, type, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {
      _classCallCheck(this, IfcRationalBSplineSurfaceWithKnots);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRationalBSplineSurfaceWithKnots, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.UDegree);
        ;
        args.push(this.VDegree);
        ;
        args.push(this.ControlPointsList);
        ;
        args.push(this.SurfaceForm);
        ;
        args.push(this.UClosed);
        ;
        args.push(this.VClosed);
        ;
        args.push(this.SelfIntersect);
        ;
        args.push(this.UMultiplicities);
        ;
        args.push(this.VMultiplicities);
        ;
        args.push(this.UKnots);
        ;
        args.push(this.VKnots);
        ;
        args.push(this.KnotSpec);
        ;
        args.push(this.WeightsData);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var UDegree = tape[ptr++];
        var VDegree = tape[ptr++];
        var ControlPointsList = tape[ptr++];
        var SurfaceForm = tape[ptr++];
        var UClosed = tape[ptr++];
        var VClosed = tape[ptr++];
        var SelfIntersect = tape[ptr++];
        var UMultiplicities = tape[ptr++];
        var VMultiplicities = tape[ptr++];
        var UKnots = tape[ptr++];
        var VKnots = tape[ptr++];
        var KnotSpec = tape[ptr++];
        var WeightsData = tape[ptr++];
        return new IfcRationalBSplineSurfaceWithKnots(expressID, type, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData);
      }
    }]);

    return IfcRationalBSplineSurfaceWithKnots;
  }();

  _exports.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;

  var IfcRectangleHollowProfileDef = /*#__PURE__*/function () {
    function IfcRectangleHollowProfileDef(expressID, type, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {
      _classCallCheck(this, IfcRectangleHollowProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.XDim = XDim;
      this.YDim = YDim;
      this.WallThickness = WallThickness;
      this.InnerFilletRadius = InnerFilletRadius;
      this.OuterFilletRadius = OuterFilletRadius;
    }

    _createClass(IfcRectangleHollowProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.XDim);
        ;
        args.push(this.YDim);
        ;
        args.push(this.WallThickness);
        ;
        args.push(this.InnerFilletRadius);
        ;
        args.push(this.OuterFilletRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var XDim = tape[ptr++];
        var YDim = tape[ptr++];
        var WallThickness = tape[ptr++];
        var InnerFilletRadius = tape[ptr++];
        var OuterFilletRadius = tape[ptr++];
        return new IfcRectangleHollowProfileDef(expressID, type, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius);
      }
    }]);

    return IfcRectangleHollowProfileDef;
  }();

  _exports.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;

  var IfcRectangleProfileDef = /*#__PURE__*/function () {
    function IfcRectangleProfileDef(expressID, type, ProfileType, ProfileName, Position, XDim, YDim) {
      _classCallCheck(this, IfcRectangleProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.XDim = XDim;
      this.YDim = YDim;
    }

    _createClass(IfcRectangleProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.XDim);
        ;
        args.push(this.YDim);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var XDim = tape[ptr++];
        var YDim = tape[ptr++];
        return new IfcRectangleProfileDef(expressID, type, ProfileType, ProfileName, Position, XDim, YDim);
      }
    }]);

    return IfcRectangleProfileDef;
  }();

  _exports.IfcRectangleProfileDef = IfcRectangleProfileDef;

  var IfcRectangularPyramid = /*#__PURE__*/function () {
    function IfcRectangularPyramid(expressID, type, Position, XLength, YLength, Height) {
      _classCallCheck(this, IfcRectangularPyramid);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.XLength = XLength;
      this.YLength = YLength;
      this.Height = Height;
    }

    _createClass(IfcRectangularPyramid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.XLength);
        ;
        args.push(this.YLength);
        ;
        args.push(this.Height);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var XLength = tape[ptr++];
        var YLength = tape[ptr++];
        var Height = tape[ptr++];
        return new IfcRectangularPyramid(expressID, type, Position, XLength, YLength, Height);
      }
    }]);

    return IfcRectangularPyramid;
  }();

  _exports.IfcRectangularPyramid = IfcRectangularPyramid;

  var IfcRectangularTrimmedSurface = /*#__PURE__*/function () {
    function IfcRectangularTrimmedSurface(expressID, type, BasisSurface, U1, V1, U2, V2, Usense, Vsense) {
      _classCallCheck(this, IfcRectangularTrimmedSurface);

      this.expressID = expressID;
      this.type = type;
      this.BasisSurface = BasisSurface;
      this.U1 = U1;
      this.V1 = V1;
      this.U2 = U2;
      this.V2 = V2;
      this.Usense = Usense;
      this.Vsense = Vsense;
    }

    _createClass(IfcRectangularTrimmedSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisSurface);
        ;
        args.push(this.U1);
        ;
        args.push(this.V1);
        ;
        args.push(this.U2);
        ;
        args.push(this.V2);
        ;
        args.push(this.Usense);
        ;
        args.push(this.Vsense);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisSurface = tape[ptr++];
        var U1 = tape[ptr++];
        var V1 = tape[ptr++];
        var U2 = tape[ptr++];
        var V2 = tape[ptr++];
        var Usense = tape[ptr++];
        var Vsense = tape[ptr++];
        return new IfcRectangularTrimmedSurface(expressID, type, BasisSurface, U1, V1, U2, V2, Usense, Vsense);
      }
    }]);

    return IfcRectangularTrimmedSurface;
  }();

  _exports.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;

  var IfcRecurrencePattern = /*#__PURE__*/function () {
    function IfcRecurrencePattern(expressID, type, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {
      _classCallCheck(this, IfcRecurrencePattern);

      this.expressID = expressID;
      this.type = type;
      this.RecurrenceType = RecurrenceType;
      this.DayComponent = DayComponent;
      this.WeekdayComponent = WeekdayComponent;
      this.MonthComponent = MonthComponent;
      this.Position = Position;
      this.Interval = Interval;
      this.Occurrences = Occurrences;
      this.TimePeriods = TimePeriods;
    }

    _createClass(IfcRecurrencePattern, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RecurrenceType);
        ;
        args.push(this.DayComponent);
        ;
        args.push(this.WeekdayComponent);
        ;
        args.push(this.MonthComponent);
        ;
        args.push(this.Position);
        ;
        args.push(this.Interval);
        ;
        args.push(this.Occurrences);
        ;
        args.push(this.TimePeriods);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RecurrenceType = tape[ptr++];
        var DayComponent = tape[ptr++];
        var WeekdayComponent = tape[ptr++];
        var MonthComponent = tape[ptr++];
        var Position = tape[ptr++];
        var Interval = tape[ptr++];
        var Occurrences = tape[ptr++];
        var TimePeriods = tape[ptr++];
        return new IfcRecurrencePattern(expressID, type, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods);
      }
    }]);

    return IfcRecurrencePattern;
  }();

  _exports.IfcRecurrencePattern = IfcRecurrencePattern;

  var IfcReference = /*#__PURE__*/function () {
    function IfcReference(expressID, type, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {
      _classCallCheck(this, IfcReference);

      this.expressID = expressID;
      this.type = type;
      this.TypeIdentifier = TypeIdentifier;
      this.AttributeIdentifier = AttributeIdentifier;
      this.InstanceName = InstanceName;
      this.ListPositions = ListPositions;
      this.InnerReference = InnerReference;
    }

    _createClass(IfcReference, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TypeIdentifier);
        ;
        args.push(this.AttributeIdentifier);
        ;
        args.push(this.InstanceName);
        ;
        args.push(this.ListPositions);
        ;
        args.push(this.InnerReference);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TypeIdentifier = tape[ptr++];
        var AttributeIdentifier = tape[ptr++];
        var InstanceName = tape[ptr++];
        var ListPositions = tape[ptr++];
        var InnerReference = tape[ptr++];
        return new IfcReference(expressID, type, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference);
      }
    }]);

    return IfcReference;
  }();

  _exports.IfcReference = IfcReference;

  var IfcReferent = /*#__PURE__*/function () {
    function IfcReferent(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, RestartDistance) {
      _classCallCheck(this, IfcReferent);

      this.expressID = expressID;
      this.type = type;
      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.RestartDistance = RestartDistance;
    }

    _createClass(IfcReferent, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.RestartDistance);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var RestartDistance = tape[ptr++];
        return new IfcReferent(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, RestartDistance);
      }
    }]);

    return IfcReferent;
  }();

  _exports.IfcReferent = IfcReferent;

  var IfcRegularTimeSeries = /*#__PURE__*/function () {
    function IfcRegularTimeSeries(expressID, type, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {
      _classCallCheck(this, IfcRegularTimeSeries);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRegularTimeSeries, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.StartTime);
        ;
        args.push(this.EndTime);
        ;
        args.push(this.TimeSeriesDataType);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.Unit);
        ;
        args.push(this.TimeStep);
        ;
        args.push(this.Values);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var StartTime = tape[ptr++];
        var EndTime = tape[ptr++];
        var TimeSeriesDataType = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var Unit = tape[ptr++];
        var TimeStep = tape[ptr++];
        var Values = tape[ptr++];
        return new IfcRegularTimeSeries(expressID, type, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values);
      }
    }]);

    return IfcRegularTimeSeries;
  }();

  _exports.IfcRegularTimeSeries = IfcRegularTimeSeries;

  var IfcReinforcementBarProperties = /*#__PURE__*/function () {
    function IfcReinforcementBarProperties(expressID, type, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {
      _classCallCheck(this, IfcReinforcementBarProperties);

      this.expressID = expressID;
      this.type = type;
      this.TotalCrossSectionArea = TotalCrossSectionArea;
      this.SteelGrade = SteelGrade;
      this.BarSurface = BarSurface;
      this.EffectiveDepth = EffectiveDepth;
      this.NominalBarDiameter = NominalBarDiameter;
      this.BarCount = BarCount;
    }

    _createClass(IfcReinforcementBarProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TotalCrossSectionArea);
        ;
        args.push(this.SteelGrade);
        ;
        args.push(this.BarSurface);
        ;
        args.push(this.EffectiveDepth);
        ;
        args.push(this.NominalBarDiameter);
        ;
        args.push(this.BarCount);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TotalCrossSectionArea = tape[ptr++];
        var SteelGrade = tape[ptr++];
        var BarSurface = tape[ptr++];
        var EffectiveDepth = tape[ptr++];
        var NominalBarDiameter = tape[ptr++];
        var BarCount = tape[ptr++];
        return new IfcReinforcementBarProperties(expressID, type, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount);
      }
    }]);

    return IfcReinforcementBarProperties;
  }();

  _exports.IfcReinforcementBarProperties = IfcReinforcementBarProperties;

  var IfcReinforcementDefinitionProperties = /*#__PURE__*/function () {
    function IfcReinforcementDefinitionProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {
      _classCallCheck(this, IfcReinforcementDefinitionProperties);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.DefinitionType = DefinitionType;
      this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;
    }

    _createClass(IfcReinforcementDefinitionProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.DefinitionType);
        ;
        args.push(this.ReinforcementSectionDefinitions);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var DefinitionType = tape[ptr++];
        var ReinforcementSectionDefinitions = tape[ptr++];
        return new IfcReinforcementDefinitionProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions);
      }
    }]);

    return IfcReinforcementDefinitionProperties;
  }();

  _exports.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;

  var IfcReinforcingBar = /*#__PURE__*/function () {
    function IfcReinforcingBar(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {
      _classCallCheck(this, IfcReinforcingBar);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcReinforcingBar, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.SteelGrade);
        ;
        args.push(this.NominalDiameter);
        ;
        args.push(this.CrossSectionArea);
        ;
        args.push(this.BarLength);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.BarSurface);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var SteelGrade = tape[ptr++];
        var NominalDiameter = tape[ptr++];
        var CrossSectionArea = tape[ptr++];
        var BarLength = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var BarSurface = tape[ptr++];
        return new IfcReinforcingBar(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface);
      }
    }]);

    return IfcReinforcingBar;
  }();

  _exports.IfcReinforcingBar = IfcReinforcingBar;

  var IfcReinforcingBarType = /*#__PURE__*/function () {
    function IfcReinforcingBarType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {
      _classCallCheck(this, IfcReinforcingBarType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcReinforcingBarType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.NominalDiameter);
        ;
        args.push(this.CrossSectionArea);
        ;
        args.push(this.BarLength);
        ;
        args.push(this.BarSurface);
        ;
        args.push(this.BendingShapeCode);
        ;
        args.push(this.BendingParameters);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var NominalDiameter = tape[ptr++];
        var CrossSectionArea = tape[ptr++];
        var BarLength = tape[ptr++];
        var BarSurface = tape[ptr++];
        var BendingShapeCode = tape[ptr++];
        var BendingParameters = tape[ptr++];
        return new IfcReinforcingBarType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters);
      }
    }]);

    return IfcReinforcingBarType;
  }();

  _exports.IfcReinforcingBarType = IfcReinforcingBarType;

  var IfcReinforcingElement = /*#__PURE__*/function () {
    function IfcReinforcingElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {
      _classCallCheck(this, IfcReinforcingElement);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcReinforcingElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.SteelGrade);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var SteelGrade = tape[ptr++];
        return new IfcReinforcingElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
      }
    }]);

    return IfcReinforcingElement;
  }();

  _exports.IfcReinforcingElement = IfcReinforcingElement;

  var IfcReinforcingElementType = /*#__PURE__*/function () {
    function IfcReinforcingElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcReinforcingElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcReinforcingElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcReinforcingElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcReinforcingElementType;
  }();

  _exports.IfcReinforcingElementType = IfcReinforcingElementType;

  var IfcReinforcingMesh = /*#__PURE__*/function () {
    function IfcReinforcingMesh(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {
      _classCallCheck(this, IfcReinforcingMesh);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcReinforcingMesh, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.SteelGrade);
        ;
        args.push(this.MeshLength);
        ;
        args.push(this.MeshWidth);
        ;
        args.push(this.LongitudinalBarNominalDiameter);
        ;
        args.push(this.TransverseBarNominalDiameter);
        ;
        args.push(this.LongitudinalBarCrossSectionArea);
        ;
        args.push(this.TransverseBarCrossSectionArea);
        ;
        args.push(this.LongitudinalBarSpacing);
        ;
        args.push(this.TransverseBarSpacing);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var SteelGrade = tape[ptr++];
        var MeshLength = tape[ptr++];
        var MeshWidth = tape[ptr++];
        var LongitudinalBarNominalDiameter = tape[ptr++];
        var TransverseBarNominalDiameter = tape[ptr++];
        var LongitudinalBarCrossSectionArea = tape[ptr++];
        var TransverseBarCrossSectionArea = tape[ptr++];
        var LongitudinalBarSpacing = tape[ptr++];
        var TransverseBarSpacing = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcReinforcingMesh(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType);
      }
    }]);

    return IfcReinforcingMesh;
  }();

  _exports.IfcReinforcingMesh = IfcReinforcingMesh;

  var IfcReinforcingMeshType = /*#__PURE__*/function () {
    function IfcReinforcingMeshType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {
      _classCallCheck(this, IfcReinforcingMeshType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcReinforcingMeshType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.MeshLength);
        ;
        args.push(this.MeshWidth);
        ;
        args.push(this.LongitudinalBarNominalDiameter);
        ;
        args.push(this.TransverseBarNominalDiameter);
        ;
        args.push(this.LongitudinalBarCrossSectionArea);
        ;
        args.push(this.TransverseBarCrossSectionArea);
        ;
        args.push(this.LongitudinalBarSpacing);
        ;
        args.push(this.TransverseBarSpacing);
        ;
        args.push(this.BendingShapeCode);
        ;
        args.push(this.BendingParameters);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var MeshLength = tape[ptr++];
        var MeshWidth = tape[ptr++];
        var LongitudinalBarNominalDiameter = tape[ptr++];
        var TransverseBarNominalDiameter = tape[ptr++];
        var LongitudinalBarCrossSectionArea = tape[ptr++];
        var TransverseBarCrossSectionArea = tape[ptr++];
        var LongitudinalBarSpacing = tape[ptr++];
        var TransverseBarSpacing = tape[ptr++];
        var BendingShapeCode = tape[ptr++];
        var BendingParameters = tape[ptr++];
        return new IfcReinforcingMeshType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters);
      }
    }]);

    return IfcReinforcingMeshType;
  }();

  _exports.IfcReinforcingMeshType = IfcReinforcingMeshType;

  var IfcRelAggregates = /*#__PURE__*/function () {
    function IfcRelAggregates(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
      _classCallCheck(this, IfcRelAggregates);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingObject = RelatingObject;
      this.RelatedObjects = RelatedObjects;
    }

    _createClass(IfcRelAggregates, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingObject);
        ;
        args.push(this.RelatedObjects);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingObject = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        return new IfcRelAggregates(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);
      }
    }]);

    return IfcRelAggregates;
  }();

  _exports.IfcRelAggregates = IfcRelAggregates;

  var IfcRelAssigns = /*#__PURE__*/function () {
    function IfcRelAssigns(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {
      _classCallCheck(this, IfcRelAssigns);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
    }

    _createClass(IfcRelAssigns, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        return new IfcRelAssigns(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
      }
    }]);

    return IfcRelAssigns;
  }();

  _exports.IfcRelAssigns = IfcRelAssigns;

  var IfcRelAssignsToActor = /*#__PURE__*/function () {
    function IfcRelAssignsToActor(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {
      _classCallCheck(this, IfcRelAssignsToActor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingActor = RelatingActor;
      this.ActingRole = ActingRole;
    }

    _createClass(IfcRelAssignsToActor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingActor);
        ;
        args.push(this.ActingRole);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingActor = tape[ptr++];
        var ActingRole = tape[ptr++];
        return new IfcRelAssignsToActor(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole);
      }
    }]);

    return IfcRelAssignsToActor;
  }();

  _exports.IfcRelAssignsToActor = IfcRelAssignsToActor;

  var IfcRelAssignsToControl = /*#__PURE__*/function () {
    function IfcRelAssignsToControl(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {
      _classCallCheck(this, IfcRelAssignsToControl);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingControl = RelatingControl;
    }

    _createClass(IfcRelAssignsToControl, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingControl);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingControl = tape[ptr++];
        return new IfcRelAssignsToControl(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);
      }
    }]);

    return IfcRelAssignsToControl;
  }();

  _exports.IfcRelAssignsToControl = IfcRelAssignsToControl;

  var IfcRelAssignsToGroup = /*#__PURE__*/function () {
    function IfcRelAssignsToGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {
      _classCallCheck(this, IfcRelAssignsToGroup);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingGroup = RelatingGroup;
    }

    _createClass(IfcRelAssignsToGroup, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingGroup);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingGroup = tape[ptr++];
        return new IfcRelAssignsToGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);
      }
    }]);

    return IfcRelAssignsToGroup;
  }();

  _exports.IfcRelAssignsToGroup = IfcRelAssignsToGroup;

  var IfcRelAssignsToGroupByFactor = /*#__PURE__*/function () {
    function IfcRelAssignsToGroupByFactor(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {
      _classCallCheck(this, IfcRelAssignsToGroupByFactor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingGroup = RelatingGroup;
      this.Factor = Factor;
    }

    _createClass(IfcRelAssignsToGroupByFactor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingGroup);
        ;
        args.push(this.Factor);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingGroup = tape[ptr++];
        var Factor = tape[ptr++];
        return new IfcRelAssignsToGroupByFactor(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor);
      }
    }]);

    return IfcRelAssignsToGroupByFactor;
  }();

  _exports.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;

  var IfcRelAssignsToProcess = /*#__PURE__*/function () {
    function IfcRelAssignsToProcess(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {
      _classCallCheck(this, IfcRelAssignsToProcess);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingProcess = RelatingProcess;
      this.QuantityInProcess = QuantityInProcess;
    }

    _createClass(IfcRelAssignsToProcess, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingProcess);
        ;
        args.push(this.QuantityInProcess);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingProcess = tape[ptr++];
        var QuantityInProcess = tape[ptr++];
        return new IfcRelAssignsToProcess(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess);
      }
    }]);

    return IfcRelAssignsToProcess;
  }();

  _exports.IfcRelAssignsToProcess = IfcRelAssignsToProcess;

  var IfcRelAssignsToProduct = /*#__PURE__*/function () {
    function IfcRelAssignsToProduct(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {
      _classCallCheck(this, IfcRelAssignsToProduct);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingProduct = RelatingProduct;
    }

    _createClass(IfcRelAssignsToProduct, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingProduct);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingProduct = tape[ptr++];
        return new IfcRelAssignsToProduct(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct);
      }
    }]);

    return IfcRelAssignsToProduct;
  }();

  _exports.IfcRelAssignsToProduct = IfcRelAssignsToProduct;

  var IfcRelAssignsToResource = /*#__PURE__*/function () {
    function IfcRelAssignsToResource(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {
      _classCallCheck(this, IfcRelAssignsToResource);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatedObjectsType = RelatedObjectsType;
      this.RelatingResource = RelatingResource;
    }

    _createClass(IfcRelAssignsToResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatedObjectsType);
        ;
        args.push(this.RelatingResource);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatedObjectsType = tape[ptr++];
        var RelatingResource = tape[ptr++];
        return new IfcRelAssignsToResource(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource);
      }
    }]);

    return IfcRelAssignsToResource;
  }();

  _exports.IfcRelAssignsToResource = IfcRelAssignsToResource;

  var IfcRelAssociates = /*#__PURE__*/function () {
    function IfcRelAssociates(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects) {
      _classCallCheck(this, IfcRelAssociates);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
    }

    _createClass(IfcRelAssociates, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        return new IfcRelAssociates(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects);
      }
    }]);

    return IfcRelAssociates;
  }();

  _exports.IfcRelAssociates = IfcRelAssociates;

  var IfcRelAssociatesApproval = /*#__PURE__*/function () {
    function IfcRelAssociatesApproval(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {
      _classCallCheck(this, IfcRelAssociatesApproval);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingApproval = RelatingApproval;
    }

    _createClass(IfcRelAssociatesApproval, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingApproval);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingApproval = tape[ptr++];
        return new IfcRelAssociatesApproval(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval);
      }
    }]);

    return IfcRelAssociatesApproval;
  }();

  _exports.IfcRelAssociatesApproval = IfcRelAssociatesApproval;

  var IfcRelAssociatesClassification = /*#__PURE__*/function () {
    function IfcRelAssociatesClassification(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {
      _classCallCheck(this, IfcRelAssociatesClassification);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingClassification = RelatingClassification;
    }

    _createClass(IfcRelAssociatesClassification, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingClassification);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingClassification = tape[ptr++];
        return new IfcRelAssociatesClassification(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification);
      }
    }]);

    return IfcRelAssociatesClassification;
  }();

  _exports.IfcRelAssociatesClassification = IfcRelAssociatesClassification;

  var IfcRelAssociatesConstraint = /*#__PURE__*/function () {
    function IfcRelAssociatesConstraint(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {
      _classCallCheck(this, IfcRelAssociatesConstraint);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.Intent = Intent;
      this.RelatingConstraint = RelatingConstraint;
    }

    _createClass(IfcRelAssociatesConstraint, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.Intent);
        ;
        args.push(this.RelatingConstraint);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var Intent = tape[ptr++];
        var RelatingConstraint = tape[ptr++];
        return new IfcRelAssociatesConstraint(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint);
      }
    }]);

    return IfcRelAssociatesConstraint;
  }();

  _exports.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;

  var IfcRelAssociatesDocument = /*#__PURE__*/function () {
    function IfcRelAssociatesDocument(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {
      _classCallCheck(this, IfcRelAssociatesDocument);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingDocument = RelatingDocument;
    }

    _createClass(IfcRelAssociatesDocument, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingDocument);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingDocument = tape[ptr++];
        return new IfcRelAssociatesDocument(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument);
      }
    }]);

    return IfcRelAssociatesDocument;
  }();

  _exports.IfcRelAssociatesDocument = IfcRelAssociatesDocument;

  var IfcRelAssociatesLibrary = /*#__PURE__*/function () {
    function IfcRelAssociatesLibrary(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {
      _classCallCheck(this, IfcRelAssociatesLibrary);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingLibrary = RelatingLibrary;
    }

    _createClass(IfcRelAssociatesLibrary, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingLibrary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingLibrary = tape[ptr++];
        return new IfcRelAssociatesLibrary(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary);
      }
    }]);

    return IfcRelAssociatesLibrary;
  }();

  _exports.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;

  var IfcRelAssociatesMaterial = /*#__PURE__*/function () {
    function IfcRelAssociatesMaterial(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {
      _classCallCheck(this, IfcRelAssociatesMaterial);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingMaterial = RelatingMaterial;
    }

    _createClass(IfcRelAssociatesMaterial, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingMaterial);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingMaterial = tape[ptr++];
        return new IfcRelAssociatesMaterial(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial);
      }
    }]);

    return IfcRelAssociatesMaterial;
  }();

  _exports.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;

  var IfcRelConnects = /*#__PURE__*/function () {
    function IfcRelConnects(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcRelConnects);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcRelConnects, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcRelConnects(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcRelConnects;
  }();

  _exports.IfcRelConnects = IfcRelConnects;

  var IfcRelConnectsElements = /*#__PURE__*/function () {
    function IfcRelConnectsElements(expressID, type, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {
      _classCallCheck(this, IfcRelConnectsElements);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ConnectionGeometry = ConnectionGeometry;
      this.RelatingElement = RelatingElement;
      this.RelatedElement = RelatedElement;
    }

    _createClass(IfcRelConnectsElements, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ConnectionGeometry);
        ;
        args.push(this.RelatingElement);
        ;
        args.push(this.RelatedElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ConnectionGeometry = tape[ptr++];
        var RelatingElement = tape[ptr++];
        var RelatedElement = tape[ptr++];
        return new IfcRelConnectsElements(expressID, type, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
      }
    }]);

    return IfcRelConnectsElements;
  }();

  _exports.IfcRelConnectsElements = IfcRelConnectsElements;

  var IfcRelConnectsPathElements = /*#__PURE__*/function () {
    function IfcRelConnectsPathElements(expressID, type, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {
      _classCallCheck(this, IfcRelConnectsPathElements);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelConnectsPathElements, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ConnectionGeometry);
        ;
        args.push(this.RelatingElement);
        ;
        args.push(this.RelatedElement);
        ;
        args.push(this.RelatingPriorities);
        ;
        args.push(this.RelatedPriorities);
        ;
        args.push(this.RelatedConnectionType);
        ;
        args.push(this.RelatingConnectionType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ConnectionGeometry = tape[ptr++];
        var RelatingElement = tape[ptr++];
        var RelatedElement = tape[ptr++];
        var RelatingPriorities = tape[ptr++];
        var RelatedPriorities = tape[ptr++];
        var RelatedConnectionType = tape[ptr++];
        var RelatingConnectionType = tape[ptr++];
        return new IfcRelConnectsPathElements(expressID, type, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType);
      }
    }]);

    return IfcRelConnectsPathElements;
  }();

  _exports.IfcRelConnectsPathElements = IfcRelConnectsPathElements;

  var IfcRelConnectsPortToElement = /*#__PURE__*/function () {
    function IfcRelConnectsPortToElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {
      _classCallCheck(this, IfcRelConnectsPortToElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingPort = RelatingPort;
      this.RelatedElement = RelatedElement;
    }

    _createClass(IfcRelConnectsPortToElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingPort);
        ;
        args.push(this.RelatedElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingPort = tape[ptr++];
        var RelatedElement = tape[ptr++];
        return new IfcRelConnectsPortToElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement);
      }
    }]);

    return IfcRelConnectsPortToElement;
  }();

  _exports.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;

  var IfcRelConnectsPorts = /*#__PURE__*/function () {
    function IfcRelConnectsPorts(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {
      _classCallCheck(this, IfcRelConnectsPorts);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingPort = RelatingPort;
      this.RelatedPort = RelatedPort;
      this.RealizingElement = RealizingElement;
    }

    _createClass(IfcRelConnectsPorts, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingPort);
        ;
        args.push(this.RelatedPort);
        ;
        args.push(this.RealizingElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingPort = tape[ptr++];
        var RelatedPort = tape[ptr++];
        var RealizingElement = tape[ptr++];
        return new IfcRelConnectsPorts(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement);
      }
    }]);

    return IfcRelConnectsPorts;
  }();

  _exports.IfcRelConnectsPorts = IfcRelConnectsPorts;

  var IfcRelConnectsStructuralActivity = /*#__PURE__*/function () {
    function IfcRelConnectsStructuralActivity(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {
      _classCallCheck(this, IfcRelConnectsStructuralActivity);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingElement = RelatingElement;
      this.RelatedStructuralActivity = RelatedStructuralActivity;
    }

    _createClass(IfcRelConnectsStructuralActivity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingElement);
        ;
        args.push(this.RelatedStructuralActivity);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingElement = tape[ptr++];
        var RelatedStructuralActivity = tape[ptr++];
        return new IfcRelConnectsStructuralActivity(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity);
      }
    }]);

    return IfcRelConnectsStructuralActivity;
  }();

  _exports.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;

  var IfcRelConnectsStructuralMember = /*#__PURE__*/function () {
    function IfcRelConnectsStructuralMember(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {
      _classCallCheck(this, IfcRelConnectsStructuralMember);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelConnectsStructuralMember, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingStructuralMember);
        ;
        args.push(this.RelatedStructuralConnection);
        ;
        args.push(this.AppliedCondition);
        ;
        args.push(this.AdditionalConditions);
        ;
        args.push(this.SupportedLength);
        ;
        args.push(this.ConditionCoordinateSystem);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingStructuralMember = tape[ptr++];
        var RelatedStructuralConnection = tape[ptr++];
        var AppliedCondition = tape[ptr++];
        var AdditionalConditions = tape[ptr++];
        var SupportedLength = tape[ptr++];
        var ConditionCoordinateSystem = tape[ptr++];
        return new IfcRelConnectsStructuralMember(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);
      }
    }]);

    return IfcRelConnectsStructuralMember;
  }();

  _exports.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;

  var IfcRelConnectsWithEccentricity = /*#__PURE__*/function () {
    function IfcRelConnectsWithEccentricity(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {
      _classCallCheck(this, IfcRelConnectsWithEccentricity);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelConnectsWithEccentricity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingStructuralMember);
        ;
        args.push(this.RelatedStructuralConnection);
        ;
        args.push(this.AppliedCondition);
        ;
        args.push(this.AdditionalConditions);
        ;
        args.push(this.SupportedLength);
        ;
        args.push(this.ConditionCoordinateSystem);
        ;
        args.push(this.ConnectionConstraint);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingStructuralMember = tape[ptr++];
        var RelatedStructuralConnection = tape[ptr++];
        var AppliedCondition = tape[ptr++];
        var AdditionalConditions = tape[ptr++];
        var SupportedLength = tape[ptr++];
        var ConditionCoordinateSystem = tape[ptr++];
        var ConnectionConstraint = tape[ptr++];
        return new IfcRelConnectsWithEccentricity(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint);
      }
    }]);

    return IfcRelConnectsWithEccentricity;
  }();

  _exports.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;

  var IfcRelConnectsWithRealizingElements = /*#__PURE__*/function () {
    function IfcRelConnectsWithRealizingElements(expressID, type, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {
      _classCallCheck(this, IfcRelConnectsWithRealizingElements);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelConnectsWithRealizingElements, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ConnectionGeometry);
        ;
        args.push(this.RelatingElement);
        ;
        args.push(this.RelatedElement);
        ;
        args.push(this.RealizingElements);
        ;
        args.push(this.ConnectionType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ConnectionGeometry = tape[ptr++];
        var RelatingElement = tape[ptr++];
        var RelatedElement = tape[ptr++];
        var RealizingElements = tape[ptr++];
        var ConnectionType = tape[ptr++];
        return new IfcRelConnectsWithRealizingElements(expressID, type, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType);
      }
    }]);

    return IfcRelConnectsWithRealizingElements;
  }();

  _exports.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;

  var IfcRelContainedInSpatialStructure = /*#__PURE__*/function () {
    function IfcRelContainedInSpatialStructure(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
      _classCallCheck(this, IfcRelContainedInSpatialStructure);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedElements = RelatedElements;
      this.RelatingStructure = RelatingStructure;
    }

    _createClass(IfcRelContainedInSpatialStructure, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedElements);
        ;
        args.push(this.RelatingStructure);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedElements = tape[ptr++];
        var RelatingStructure = tape[ptr++];
        return new IfcRelContainedInSpatialStructure(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure);
      }
    }]);

    return IfcRelContainedInSpatialStructure;
  }();

  _exports.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;

  var IfcRelCoversBldgElements = /*#__PURE__*/function () {
    function IfcRelCoversBldgElements(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {
      _classCallCheck(this, IfcRelCoversBldgElements);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingBuildingElement = RelatingBuildingElement;
      this.RelatedCoverings = RelatedCoverings;
    }

    _createClass(IfcRelCoversBldgElements, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingBuildingElement);
        ;
        args.push(this.RelatedCoverings);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingBuildingElement = tape[ptr++];
        var RelatedCoverings = tape[ptr++];
        return new IfcRelCoversBldgElements(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings);
      }
    }]);

    return IfcRelCoversBldgElements;
  }();

  _exports.IfcRelCoversBldgElements = IfcRelCoversBldgElements;

  var IfcRelCoversSpaces = /*#__PURE__*/function () {
    function IfcRelCoversSpaces(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {
      _classCallCheck(this, IfcRelCoversSpaces);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingSpace = RelatingSpace;
      this.RelatedCoverings = RelatedCoverings;
    }

    _createClass(IfcRelCoversSpaces, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingSpace);
        ;
        args.push(this.RelatedCoverings);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingSpace = tape[ptr++];
        var RelatedCoverings = tape[ptr++];
        return new IfcRelCoversSpaces(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings);
      }
    }]);

    return IfcRelCoversSpaces;
  }();

  _exports.IfcRelCoversSpaces = IfcRelCoversSpaces;

  var IfcRelDeclares = /*#__PURE__*/function () {
    function IfcRelDeclares(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {
      _classCallCheck(this, IfcRelDeclares);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingContext = RelatingContext;
      this.RelatedDefinitions = RelatedDefinitions;
    }

    _createClass(IfcRelDeclares, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingContext);
        ;
        args.push(this.RelatedDefinitions);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingContext = tape[ptr++];
        var RelatedDefinitions = tape[ptr++];
        return new IfcRelDeclares(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions);
      }
    }]);

    return IfcRelDeclares;
  }();

  _exports.IfcRelDeclares = IfcRelDeclares;

  var IfcRelDecomposes = /*#__PURE__*/function () {
    function IfcRelDecomposes(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcRelDecomposes);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcRelDecomposes, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcRelDecomposes(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcRelDecomposes;
  }();

  _exports.IfcRelDecomposes = IfcRelDecomposes;

  var IfcRelDefines = /*#__PURE__*/function () {
    function IfcRelDefines(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcRelDefines);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcRelDefines, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcRelDefines(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcRelDefines;
  }();

  _exports.IfcRelDefines = IfcRelDefines;

  var IfcRelDefinesByObject = /*#__PURE__*/function () {
    function IfcRelDefinesByObject(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {
      _classCallCheck(this, IfcRelDefinesByObject);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingObject = RelatingObject;
    }

    _createClass(IfcRelDefinesByObject, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingObject);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingObject = tape[ptr++];
        return new IfcRelDefinesByObject(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject);
      }
    }]);

    return IfcRelDefinesByObject;
  }();

  _exports.IfcRelDefinesByObject = IfcRelDefinesByObject;

  var IfcRelDefinesByProperties = /*#__PURE__*/function () {
    function IfcRelDefinesByProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {
      _classCallCheck(this, IfcRelDefinesByProperties);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingPropertyDefinition = RelatingPropertyDefinition;
    }

    _createClass(IfcRelDefinesByProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingPropertyDefinition);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingPropertyDefinition = tape[ptr++];
        return new IfcRelDefinesByProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition);
      }
    }]);

    return IfcRelDefinesByProperties;
  }();

  _exports.IfcRelDefinesByProperties = IfcRelDefinesByProperties;

  var IfcRelDefinesByTemplate = /*#__PURE__*/function () {
    function IfcRelDefinesByTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {
      _classCallCheck(this, IfcRelDefinesByTemplate);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedPropertySets = RelatedPropertySets;
      this.RelatingTemplate = RelatingTemplate;
    }

    _createClass(IfcRelDefinesByTemplate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedPropertySets);
        ;
        args.push(this.RelatingTemplate);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedPropertySets = tape[ptr++];
        var RelatingTemplate = tape[ptr++];
        return new IfcRelDefinesByTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate);
      }
    }]);

    return IfcRelDefinesByTemplate;
  }();

  _exports.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;

  var IfcRelDefinesByType = /*#__PURE__*/function () {
    function IfcRelDefinesByType(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {
      _classCallCheck(this, IfcRelDefinesByType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedObjects = RelatedObjects;
      this.RelatingType = RelatingType;
    }

    _createClass(IfcRelDefinesByType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedObjects);
        ;
        args.push(this.RelatingType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        var RelatingType = tape[ptr++];
        return new IfcRelDefinesByType(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType);
      }
    }]);

    return IfcRelDefinesByType;
  }();

  _exports.IfcRelDefinesByType = IfcRelDefinesByType;

  var IfcRelFillsElement = /*#__PURE__*/function () {
    function IfcRelFillsElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {
      _classCallCheck(this, IfcRelFillsElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingOpeningElement = RelatingOpeningElement;
      this.RelatedBuildingElement = RelatedBuildingElement;
    }

    _createClass(IfcRelFillsElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingOpeningElement);
        ;
        args.push(this.RelatedBuildingElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingOpeningElement = tape[ptr++];
        var RelatedBuildingElement = tape[ptr++];
        return new IfcRelFillsElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement);
      }
    }]);

    return IfcRelFillsElement;
  }();

  _exports.IfcRelFillsElement = IfcRelFillsElement;

  var IfcRelFlowControlElements = /*#__PURE__*/function () {
    function IfcRelFlowControlElements(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {
      _classCallCheck(this, IfcRelFlowControlElements);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedControlElements = RelatedControlElements;
      this.RelatingFlowElement = RelatingFlowElement;
    }

    _createClass(IfcRelFlowControlElements, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedControlElements);
        ;
        args.push(this.RelatingFlowElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedControlElements = tape[ptr++];
        var RelatingFlowElement = tape[ptr++];
        return new IfcRelFlowControlElements(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement);
      }
    }]);

    return IfcRelFlowControlElements;
  }();

  _exports.IfcRelFlowControlElements = IfcRelFlowControlElements;

  var IfcRelInterferesElements = /*#__PURE__*/function () {
    function IfcRelInterferesElements(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) {
      _classCallCheck(this, IfcRelInterferesElements);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelInterferesElements, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingElement);
        ;
        args.push(this.RelatedElement);
        ;
        args.push(this.InterferenceGeometry);
        ;
        args.push(this.InterferenceType);
        ;
        args.push(this.ImpliedOrder);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingElement = tape[ptr++];
        var RelatedElement = tape[ptr++];
        var InterferenceGeometry = tape[ptr++];
        var InterferenceType = tape[ptr++];
        var ImpliedOrder = tape[ptr++];
        return new IfcRelInterferesElements(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder);
      }
    }]);

    return IfcRelInterferesElements;
  }();

  _exports.IfcRelInterferesElements = IfcRelInterferesElements;

  var IfcRelNests = /*#__PURE__*/function () {
    function IfcRelNests(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
      _classCallCheck(this, IfcRelNests);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingObject = RelatingObject;
      this.RelatedObjects = RelatedObjects;
    }

    _createClass(IfcRelNests, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingObject);
        ;
        args.push(this.RelatedObjects);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingObject = tape[ptr++];
        var RelatedObjects = tape[ptr++];
        return new IfcRelNests(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);
      }
    }]);

    return IfcRelNests;
  }();

  _exports.IfcRelNests = IfcRelNests;

  var IfcRelPositions = /*#__PURE__*/function () {
    function IfcRelPositions(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) {
      _classCallCheck(this, IfcRelPositions);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingPositioningElement = RelatingPositioningElement;
      this.RelatedProducts = RelatedProducts;
    }

    _createClass(IfcRelPositions, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingPositioningElement);
        ;
        args.push(this.RelatedProducts);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingPositioningElement = tape[ptr++];
        var RelatedProducts = tape[ptr++];
        return new IfcRelPositions(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts);
      }
    }]);

    return IfcRelPositions;
  }();

  _exports.IfcRelPositions = IfcRelPositions;

  var IfcRelProjectsElement = /*#__PURE__*/function () {
    function IfcRelProjectsElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {
      _classCallCheck(this, IfcRelProjectsElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingElement = RelatingElement;
      this.RelatedFeatureElement = RelatedFeatureElement;
    }

    _createClass(IfcRelProjectsElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingElement);
        ;
        args.push(this.RelatedFeatureElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingElement = tape[ptr++];
        var RelatedFeatureElement = tape[ptr++];
        return new IfcRelProjectsElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement);
      }
    }]);

    return IfcRelProjectsElement;
  }();

  _exports.IfcRelProjectsElement = IfcRelProjectsElement;

  var IfcRelReferencedInSpatialStructure = /*#__PURE__*/function () {
    function IfcRelReferencedInSpatialStructure(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
      _classCallCheck(this, IfcRelReferencedInSpatialStructure);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatedElements = RelatedElements;
      this.RelatingStructure = RelatingStructure;
    }

    _createClass(IfcRelReferencedInSpatialStructure, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedElements);
        ;
        args.push(this.RelatingStructure);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedElements = tape[ptr++];
        var RelatingStructure = tape[ptr++];
        return new IfcRelReferencedInSpatialStructure(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure);
      }
    }]);

    return IfcRelReferencedInSpatialStructure;
  }();

  _exports.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;

  var IfcRelSequence = /*#__PURE__*/function () {
    function IfcRelSequence(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {
      _classCallCheck(this, IfcRelSequence);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelSequence, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingProcess);
        ;
        args.push(this.RelatedProcess);
        ;
        args.push(this.TimeLag);
        ;
        args.push(this.SequenceType);
        ;
        args.push(this.UserDefinedSequenceType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingProcess = tape[ptr++];
        var RelatedProcess = tape[ptr++];
        var TimeLag = tape[ptr++];
        var SequenceType = tape[ptr++];
        var UserDefinedSequenceType = tape[ptr++];
        return new IfcRelSequence(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType);
      }
    }]);

    return IfcRelSequence;
  }();

  _exports.IfcRelSequence = IfcRelSequence;

  var IfcRelServicesBuildings = /*#__PURE__*/function () {
    function IfcRelServicesBuildings(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {
      _classCallCheck(this, IfcRelServicesBuildings);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingSystem = RelatingSystem;
      this.RelatedBuildings = RelatedBuildings;
    }

    _createClass(IfcRelServicesBuildings, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingSystem);
        ;
        args.push(this.RelatedBuildings);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingSystem = tape[ptr++];
        var RelatedBuildings = tape[ptr++];
        return new IfcRelServicesBuildings(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings);
      }
    }]);

    return IfcRelServicesBuildings;
  }();

  _exports.IfcRelServicesBuildings = IfcRelServicesBuildings;

  var IfcRelSpaceBoundary = /*#__PURE__*/function () {
    function IfcRelSpaceBoundary(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {
      _classCallCheck(this, IfcRelSpaceBoundary);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelSpaceBoundary, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingSpace);
        ;
        args.push(this.RelatedBuildingElement);
        ;
        args.push(this.ConnectionGeometry);
        ;
        args.push(this.PhysicalOrVirtualBoundary);
        ;
        args.push(this.InternalOrExternalBoundary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingSpace = tape[ptr++];
        var RelatedBuildingElement = tape[ptr++];
        var ConnectionGeometry = tape[ptr++];
        var PhysicalOrVirtualBoundary = tape[ptr++];
        var InternalOrExternalBoundary = tape[ptr++];
        return new IfcRelSpaceBoundary(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);
      }
    }]);

    return IfcRelSpaceBoundary;
  }();

  _exports.IfcRelSpaceBoundary = IfcRelSpaceBoundary;

  var IfcRelSpaceBoundary1stLevel = /*#__PURE__*/function () {
    function IfcRelSpaceBoundary1stLevel(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {
      _classCallCheck(this, IfcRelSpaceBoundary1stLevel);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelSpaceBoundary1stLevel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingSpace);
        ;
        args.push(this.RelatedBuildingElement);
        ;
        args.push(this.ConnectionGeometry);
        ;
        args.push(this.PhysicalOrVirtualBoundary);
        ;
        args.push(this.InternalOrExternalBoundary);
        ;
        args.push(this.ParentBoundary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingSpace = tape[ptr++];
        var RelatedBuildingElement = tape[ptr++];
        var ConnectionGeometry = tape[ptr++];
        var PhysicalOrVirtualBoundary = tape[ptr++];
        var InternalOrExternalBoundary = tape[ptr++];
        var ParentBoundary = tape[ptr++];
        return new IfcRelSpaceBoundary1stLevel(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);
      }
    }]);

    return IfcRelSpaceBoundary1stLevel;
  }();

  _exports.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;

  var IfcRelSpaceBoundary2ndLevel = /*#__PURE__*/function () {
    function IfcRelSpaceBoundary2ndLevel(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {
      _classCallCheck(this, IfcRelSpaceBoundary2ndLevel);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcRelSpaceBoundary2ndLevel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingSpace);
        ;
        args.push(this.RelatedBuildingElement);
        ;
        args.push(this.ConnectionGeometry);
        ;
        args.push(this.PhysicalOrVirtualBoundary);
        ;
        args.push(this.InternalOrExternalBoundary);
        ;
        args.push(this.ParentBoundary);
        ;
        args.push(this.CorrespondingBoundary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingSpace = tape[ptr++];
        var RelatedBuildingElement = tape[ptr++];
        var ConnectionGeometry = tape[ptr++];
        var PhysicalOrVirtualBoundary = tape[ptr++];
        var InternalOrExternalBoundary = tape[ptr++];
        var ParentBoundary = tape[ptr++];
        var CorrespondingBoundary = tape[ptr++];
        return new IfcRelSpaceBoundary2ndLevel(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary);
      }
    }]);

    return IfcRelSpaceBoundary2ndLevel;
  }();

  _exports.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;

  var IfcRelVoidsElement = /*#__PURE__*/function () {
    function IfcRelVoidsElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {
      _classCallCheck(this, IfcRelVoidsElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.RelatingBuildingElement = RelatingBuildingElement;
      this.RelatedOpeningElement = RelatedOpeningElement;
    }

    _createClass(IfcRelVoidsElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingBuildingElement);
        ;
        args.push(this.RelatedOpeningElement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingBuildingElement = tape[ptr++];
        var RelatedOpeningElement = tape[ptr++];
        return new IfcRelVoidsElement(expressID, type, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement);
      }
    }]);

    return IfcRelVoidsElement;
  }();

  _exports.IfcRelVoidsElement = IfcRelVoidsElement;

  var IfcRelationship = /*#__PURE__*/function () {
    function IfcRelationship(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcRelationship);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcRelationship(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcRelationship;
  }();

  _exports.IfcRelationship = IfcRelationship;

  var IfcReparametrisedCompositeCurveSegment = /*#__PURE__*/function () {
    function IfcReparametrisedCompositeCurveSegment(expressID, type, Transition, SameSense, ParentCurve, ParamLength) {
      _classCallCheck(this, IfcReparametrisedCompositeCurveSegment);

      this.expressID = expressID;
      this.type = type;
      this.Transition = Transition;
      this.SameSense = SameSense;
      this.ParentCurve = ParentCurve;
      this.ParamLength = ParamLength;
    }

    _createClass(IfcReparametrisedCompositeCurveSegment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Transition);
        ;
        args.push(this.SameSense);
        ;
        args.push(this.ParentCurve);
        ;
        args.push(this.ParamLength);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Transition = tape[ptr++];
        var SameSense = tape[ptr++];
        var ParentCurve = tape[ptr++];
        var ParamLength = tape[ptr++];
        return new IfcReparametrisedCompositeCurveSegment(expressID, type, Transition, SameSense, ParentCurve, ParamLength);
      }
    }]);

    return IfcReparametrisedCompositeCurveSegment;
  }();

  _exports.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;

  var IfcRepresentation = /*#__PURE__*/function () {
    function IfcRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
      _classCallCheck(this, IfcRepresentation);

      this.expressID = expressID;
      this.type = type;
      this.ContextOfItems = ContextOfItems;
      this.RepresentationIdentifier = RepresentationIdentifier;
      this.RepresentationType = RepresentationType;
      this.Items = Items;
    }

    _createClass(IfcRepresentation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextOfItems);
        ;
        args.push(this.RepresentationIdentifier);
        ;
        args.push(this.RepresentationType);
        ;
        args.push(this.Items);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextOfItems = tape[ptr++];
        var RepresentationIdentifier = tape[ptr++];
        var RepresentationType = tape[ptr++];
        var Items = tape[ptr++];
        return new IfcRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
      }
    }]);

    return IfcRepresentation;
  }();

  _exports.IfcRepresentation = IfcRepresentation;

  var IfcRepresentationContext = /*#__PURE__*/function () {
    function IfcRepresentationContext(expressID, type, ContextIdentifier, ContextType) {
      _classCallCheck(this, IfcRepresentationContext);

      this.expressID = expressID;
      this.type = type;
      this.ContextIdentifier = ContextIdentifier;
      this.ContextType = ContextType;
    }

    _createClass(IfcRepresentationContext, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextIdentifier);
        ;
        args.push(this.ContextType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextIdentifier = tape[ptr++];
        var ContextType = tape[ptr++];
        return new IfcRepresentationContext(expressID, type, ContextIdentifier, ContextType);
      }
    }]);

    return IfcRepresentationContext;
  }();

  _exports.IfcRepresentationContext = IfcRepresentationContext;

  var IfcRepresentationItem = /*#__PURE__*/function () {
    function IfcRepresentationItem(expressID, type) {
      _classCallCheck(this, IfcRepresentationItem);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcRepresentationItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcRepresentationItem(expressID, type);
      }
    }]);

    return IfcRepresentationItem;
  }();

  _exports.IfcRepresentationItem = IfcRepresentationItem;

  var IfcRepresentationMap = /*#__PURE__*/function () {
    function IfcRepresentationMap(expressID, type, MappingOrigin, MappedRepresentation) {
      _classCallCheck(this, IfcRepresentationMap);

      this.expressID = expressID;
      this.type = type;
      this.MappingOrigin = MappingOrigin;
      this.MappedRepresentation = MappedRepresentation;
    }

    _createClass(IfcRepresentationMap, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.MappingOrigin);
        ;
        args.push(this.MappedRepresentation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var MappingOrigin = tape[ptr++];
        var MappedRepresentation = tape[ptr++];
        return new IfcRepresentationMap(expressID, type, MappingOrigin, MappedRepresentation);
      }
    }]);

    return IfcRepresentationMap;
  }();

  _exports.IfcRepresentationMap = IfcRepresentationMap;

  var IfcResource = /*#__PURE__*/function () {
    function IfcResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {
      _classCallCheck(this, IfcResource);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.Identification = Identification;
      this.LongDescription = LongDescription;
    }

    _createClass(IfcResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        return new IfcResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
      }
    }]);

    return IfcResource;
  }();

  _exports.IfcResource = IfcResource;

  var IfcResourceApprovalRelationship = /*#__PURE__*/function () {
    function IfcResourceApprovalRelationship(expressID, type, Name, Description, RelatedResourceObjects, RelatingApproval) {
      _classCallCheck(this, IfcResourceApprovalRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatedResourceObjects = RelatedResourceObjects;
      this.RelatingApproval = RelatingApproval;
    }

    _createClass(IfcResourceApprovalRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatedResourceObjects);
        ;
        args.push(this.RelatingApproval);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatedResourceObjects = tape[ptr++];
        var RelatingApproval = tape[ptr++];
        return new IfcResourceApprovalRelationship(expressID, type, Name, Description, RelatedResourceObjects, RelatingApproval);
      }
    }]);

    return IfcResourceApprovalRelationship;
  }();

  _exports.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;

  var IfcResourceConstraintRelationship = /*#__PURE__*/function () {
    function IfcResourceConstraintRelationship(expressID, type, Name, Description, RelatingConstraint, RelatedResourceObjects) {
      _classCallCheck(this, IfcResourceConstraintRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.RelatingConstraint = RelatingConstraint;
      this.RelatedResourceObjects = RelatedResourceObjects;
    }

    _createClass(IfcResourceConstraintRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.RelatingConstraint);
        ;
        args.push(this.RelatedResourceObjects);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var RelatingConstraint = tape[ptr++];
        var RelatedResourceObjects = tape[ptr++];
        return new IfcResourceConstraintRelationship(expressID, type, Name, Description, RelatingConstraint, RelatedResourceObjects);
      }
    }]);

    return IfcResourceConstraintRelationship;
  }();

  _exports.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;

  var IfcResourceLevelRelationship = /*#__PURE__*/function () {
    function IfcResourceLevelRelationship(expressID, type, Name, Description) {
      _classCallCheck(this, IfcResourceLevelRelationship);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcResourceLevelRelationship, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcResourceLevelRelationship(expressID, type, Name, Description);
      }
    }]);

    return IfcResourceLevelRelationship;
  }();

  _exports.IfcResourceLevelRelationship = IfcResourceLevelRelationship;

  var IfcResourceTime = /*#__PURE__*/function () {
    function IfcResourceTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {
      _classCallCheck(this, IfcResourceTime);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcResourceTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.ScheduleWork);
        ;
        args.push(this.ScheduleUsage);
        ;
        args.push(this.ScheduleStart);
        ;
        args.push(this.ScheduleFinish);
        ;
        args.push(this.ScheduleContour);
        ;
        args.push(this.LevelingDelay);
        ;
        args.push(this.IsOverAllocated);
        ;
        args.push(this.StatusTime);
        ;
        args.push(this.ActualWork);
        ;
        args.push(this.ActualUsage);
        ;
        args.push(this.ActualStart);
        ;
        args.push(this.ActualFinish);
        ;
        args.push(this.RemainingWork);
        ;
        args.push(this.RemainingUsage);
        ;
        args.push(this.Completion);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var ScheduleWork = tape[ptr++];
        var ScheduleUsage = tape[ptr++];
        var ScheduleStart = tape[ptr++];
        var ScheduleFinish = tape[ptr++];
        var ScheduleContour = tape[ptr++];
        var LevelingDelay = tape[ptr++];
        var IsOverAllocated = tape[ptr++];
        var StatusTime = tape[ptr++];
        var ActualWork = tape[ptr++];
        var ActualUsage = tape[ptr++];
        var ActualStart = tape[ptr++];
        var ActualFinish = tape[ptr++];
        var RemainingWork = tape[ptr++];
        var RemainingUsage = tape[ptr++];
        var Completion = tape[ptr++];
        return new IfcResourceTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion);
      }
    }]);

    return IfcResourceTime;
  }();

  _exports.IfcResourceTime = IfcResourceTime;

  var IfcRevolvedAreaSolid = /*#__PURE__*/function () {
    function IfcRevolvedAreaSolid(expressID, type, SweptArea, Position, Axis, Angle) {
      _classCallCheck(this, IfcRevolvedAreaSolid);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
      this.Axis = Axis;
      this.Angle = Angle;
    }

    _createClass(IfcRevolvedAreaSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        args.push(this.Axis);
        ;
        args.push(this.Angle);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        var Axis = tape[ptr++];
        var Angle = tape[ptr++];
        return new IfcRevolvedAreaSolid(expressID, type, SweptArea, Position, Axis, Angle);
      }
    }]);

    return IfcRevolvedAreaSolid;
  }();

  _exports.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;

  var IfcRevolvedAreaSolidTapered = /*#__PURE__*/function () {
    function IfcRevolvedAreaSolidTapered(expressID, type, SweptArea, Position, Axis, Angle, EndSweptArea) {
      _classCallCheck(this, IfcRevolvedAreaSolidTapered);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
      this.Axis = Axis;
      this.Angle = Angle;
      this.EndSweptArea = EndSweptArea;
    }

    _createClass(IfcRevolvedAreaSolidTapered, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        args.push(this.Axis);
        ;
        args.push(this.Angle);
        ;
        args.push(this.EndSweptArea);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        var Axis = tape[ptr++];
        var Angle = tape[ptr++];
        var EndSweptArea = tape[ptr++];
        return new IfcRevolvedAreaSolidTapered(expressID, type, SweptArea, Position, Axis, Angle, EndSweptArea);
      }
    }]);

    return IfcRevolvedAreaSolidTapered;
  }();

  _exports.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;

  var IfcRightCircularCone = /*#__PURE__*/function () {
    function IfcRightCircularCone(expressID, type, Position, Height, BottomRadius) {
      _classCallCheck(this, IfcRightCircularCone);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.Height = Height;
      this.BottomRadius = BottomRadius;
    }

    _createClass(IfcRightCircularCone, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.Height);
        ;
        args.push(this.BottomRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var Height = tape[ptr++];
        var BottomRadius = tape[ptr++];
        return new IfcRightCircularCone(expressID, type, Position, Height, BottomRadius);
      }
    }]);

    return IfcRightCircularCone;
  }();

  _exports.IfcRightCircularCone = IfcRightCircularCone;

  var IfcRightCircularCylinder = /*#__PURE__*/function () {
    function IfcRightCircularCylinder(expressID, type, Position, Height, Radius) {
      _classCallCheck(this, IfcRightCircularCylinder);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.Height = Height;
      this.Radius = Radius;
    }

    _createClass(IfcRightCircularCylinder, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.Height);
        ;
        args.push(this.Radius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var Height = tape[ptr++];
        var Radius = tape[ptr++];
        return new IfcRightCircularCylinder(expressID, type, Position, Height, Radius);
      }
    }]);

    return IfcRightCircularCylinder;
  }();

  _exports.IfcRightCircularCylinder = IfcRightCircularCylinder;

  var IfcRoof = /*#__PURE__*/function () {
    function IfcRoof(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcRoof);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRoof, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRoof(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcRoof;
  }();

  _exports.IfcRoof = IfcRoof;

  var IfcRoofType = /*#__PURE__*/function () {
    function IfcRoofType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcRoofType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcRoofType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcRoofType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcRoofType;
  }();

  _exports.IfcRoofType = IfcRoofType;

  var IfcRoot = /*#__PURE__*/function () {
    function IfcRoot(expressID, type, GlobalId, OwnerHistory, Name, Description) {
      _classCallCheck(this, IfcRoot);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcRoot, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcRoot(expressID, type, GlobalId, OwnerHistory, Name, Description);
      }
    }]);

    return IfcRoot;
  }();

  _exports.IfcRoot = IfcRoot;

  var IfcRoundedRectangleProfileDef = /*#__PURE__*/function () {
    function IfcRoundedRectangleProfileDef(expressID, type, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {
      _classCallCheck(this, IfcRoundedRectangleProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.XDim = XDim;
      this.YDim = YDim;
      this.RoundingRadius = RoundingRadius;
    }

    _createClass(IfcRoundedRectangleProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.XDim);
        ;
        args.push(this.YDim);
        ;
        args.push(this.RoundingRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var XDim = tape[ptr++];
        var YDim = tape[ptr++];
        var RoundingRadius = tape[ptr++];
        return new IfcRoundedRectangleProfileDef(expressID, type, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius);
      }
    }]);

    return IfcRoundedRectangleProfileDef;
  }();

  _exports.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;

  var IfcSIUnit = /*#__PURE__*/function () {
    function IfcSIUnit(expressID, type, Dimensions, UnitType, Prefix, Name) {
      _classCallCheck(this, IfcSIUnit);

      this.expressID = expressID;
      this.type = type;
      this.Dimensions = Dimensions;
      this.UnitType = UnitType;
      this.Prefix = Prefix;
      this.Name = Name;
    }

    _createClass(IfcSIUnit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Dimensions);
        ;
        args.push(this.UnitType);
        ;
        args.push(this.Prefix);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Dimensions = tape[ptr++];
        var UnitType = tape[ptr++];
        var Prefix = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcSIUnit(expressID, type, Dimensions, UnitType, Prefix, Name);
      }
    }]);

    return IfcSIUnit;
  }();

  _exports.IfcSIUnit = IfcSIUnit;

  var IfcSanitaryTerminal = /*#__PURE__*/function () {
    function IfcSanitaryTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSanitaryTerminal);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSanitaryTerminal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSanitaryTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSanitaryTerminal;
  }();

  _exports.IfcSanitaryTerminal = IfcSanitaryTerminal;

  var IfcSanitaryTerminalType = /*#__PURE__*/function () {
    function IfcSanitaryTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSanitaryTerminalType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSanitaryTerminalType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSanitaryTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSanitaryTerminalType;
  }();

  _exports.IfcSanitaryTerminalType = IfcSanitaryTerminalType;

  var IfcSchedulingTime = /*#__PURE__*/function () {
    function IfcSchedulingTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin) {
      _classCallCheck(this, IfcSchedulingTime);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DataOrigin = DataOrigin;
      this.UserDefinedDataOrigin = UserDefinedDataOrigin;
    }

    _createClass(IfcSchedulingTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        return new IfcSchedulingTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin);
      }
    }]);

    return IfcSchedulingTime;
  }();

  _exports.IfcSchedulingTime = IfcSchedulingTime;

  var IfcSeamCurve = /*#__PURE__*/function () {
    function IfcSeamCurve(expressID, type, Curve3D, AssociatedGeometry, MasterRepresentation) {
      _classCallCheck(this, IfcSeamCurve);

      this.expressID = expressID;
      this.type = type;
      this.Curve3D = Curve3D;
      this.AssociatedGeometry = AssociatedGeometry;
      this.MasterRepresentation = MasterRepresentation;
    }

    _createClass(IfcSeamCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Curve3D);
        ;
        args.push(this.AssociatedGeometry);
        ;
        args.push(this.MasterRepresentation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Curve3D = tape[ptr++];
        var AssociatedGeometry = tape[ptr++];
        var MasterRepresentation = tape[ptr++];
        return new IfcSeamCurve(expressID, type, Curve3D, AssociatedGeometry, MasterRepresentation);
      }
    }]);

    return IfcSeamCurve;
  }();

  _exports.IfcSeamCurve = IfcSeamCurve;

  var IfcSectionProperties = /*#__PURE__*/function () {
    function IfcSectionProperties(expressID, type, SectionType, StartProfile, EndProfile) {
      _classCallCheck(this, IfcSectionProperties);

      this.expressID = expressID;
      this.type = type;
      this.SectionType = SectionType;
      this.StartProfile = StartProfile;
      this.EndProfile = EndProfile;
    }

    _createClass(IfcSectionProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SectionType);
        ;
        args.push(this.StartProfile);
        ;
        args.push(this.EndProfile);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SectionType = tape[ptr++];
        var StartProfile = tape[ptr++];
        var EndProfile = tape[ptr++];
        return new IfcSectionProperties(expressID, type, SectionType, StartProfile, EndProfile);
      }
    }]);

    return IfcSectionProperties;
  }();

  _exports.IfcSectionProperties = IfcSectionProperties;

  var IfcSectionReinforcementProperties = /*#__PURE__*/function () {
    function IfcSectionReinforcementProperties(expressID, type, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {
      _classCallCheck(this, IfcSectionReinforcementProperties);

      this.expressID = expressID;
      this.type = type;
      this.LongitudinalStartPosition = LongitudinalStartPosition;
      this.LongitudinalEndPosition = LongitudinalEndPosition;
      this.TransversePosition = TransversePosition;
      this.ReinforcementRole = ReinforcementRole;
      this.SectionDefinition = SectionDefinition;
      this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;
    }

    _createClass(IfcSectionReinforcementProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.LongitudinalStartPosition);
        ;
        args.push(this.LongitudinalEndPosition);
        ;
        args.push(this.TransversePosition);
        ;
        args.push(this.ReinforcementRole);
        ;
        args.push(this.SectionDefinition);
        ;
        args.push(this.CrossSectionReinforcementDefinitions);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var LongitudinalStartPosition = tape[ptr++];
        var LongitudinalEndPosition = tape[ptr++];
        var TransversePosition = tape[ptr++];
        var ReinforcementRole = tape[ptr++];
        var SectionDefinition = tape[ptr++];
        var CrossSectionReinforcementDefinitions = tape[ptr++];
        return new IfcSectionReinforcementProperties(expressID, type, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions);
      }
    }]);

    return IfcSectionReinforcementProperties;
  }();

  _exports.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;

  var IfcSectionedSolid = /*#__PURE__*/function () {
    function IfcSectionedSolid(expressID, type, Directrix, CrossSections) {
      _classCallCheck(this, IfcSectionedSolid);

      this.expressID = expressID;
      this.type = type;
      this.Directrix = Directrix;
      this.CrossSections = CrossSections;
    }

    _createClass(IfcSectionedSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Directrix);
        ;
        args.push(this.CrossSections);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Directrix = tape[ptr++];
        var CrossSections = tape[ptr++];
        return new IfcSectionedSolid(expressID, type, Directrix, CrossSections);
      }
    }]);

    return IfcSectionedSolid;
  }();

  _exports.IfcSectionedSolid = IfcSectionedSolid;

  var IfcSectionedSolidHorizontal = /*#__PURE__*/function () {
    function IfcSectionedSolidHorizontal(expressID, type, Directrix, CrossSections, CrossSectionPositions, FixedAxisVertical) {
      _classCallCheck(this, IfcSectionedSolidHorizontal);

      this.expressID = expressID;
      this.type = type;
      this.Directrix = Directrix;
      this.CrossSections = CrossSections;
      this.CrossSectionPositions = CrossSectionPositions;
      this.FixedAxisVertical = FixedAxisVertical;
    }

    _createClass(IfcSectionedSolidHorizontal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Directrix);
        ;
        args.push(this.CrossSections);
        ;
        args.push(this.CrossSectionPositions);
        ;
        args.push(this.FixedAxisVertical);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Directrix = tape[ptr++];
        var CrossSections = tape[ptr++];
        var CrossSectionPositions = tape[ptr++];
        var FixedAxisVertical = tape[ptr++];
        return new IfcSectionedSolidHorizontal(expressID, type, Directrix, CrossSections, CrossSectionPositions, FixedAxisVertical);
      }
    }]);

    return IfcSectionedSolidHorizontal;
  }();

  _exports.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal;

  var IfcSectionedSpine = /*#__PURE__*/function () {
    function IfcSectionedSpine(expressID, type, SpineCurve, CrossSections, CrossSectionPositions) {
      _classCallCheck(this, IfcSectionedSpine);

      this.expressID = expressID;
      this.type = type;
      this.SpineCurve = SpineCurve;
      this.CrossSections = CrossSections;
      this.CrossSectionPositions = CrossSectionPositions;
    }

    _createClass(IfcSectionedSpine, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SpineCurve);
        ;
        args.push(this.CrossSections);
        ;
        args.push(this.CrossSectionPositions);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SpineCurve = tape[ptr++];
        var CrossSections = tape[ptr++];
        var CrossSectionPositions = tape[ptr++];
        return new IfcSectionedSpine(expressID, type, SpineCurve, CrossSections, CrossSectionPositions);
      }
    }]);

    return IfcSectionedSpine;
  }();

  _exports.IfcSectionedSpine = IfcSectionedSpine;

  var IfcSensor = /*#__PURE__*/function () {
    function IfcSensor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSensor);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSensor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSensor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSensor;
  }();

  _exports.IfcSensor = IfcSensor;

  var IfcSensorType = /*#__PURE__*/function () {
    function IfcSensorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSensorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSensorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSensorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSensorType;
  }();

  _exports.IfcSensorType = IfcSensorType;

  var IfcShadingDevice = /*#__PURE__*/function () {
    function IfcShadingDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcShadingDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcShadingDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcShadingDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcShadingDevice;
  }();

  _exports.IfcShadingDevice = IfcShadingDevice;

  var IfcShadingDeviceType = /*#__PURE__*/function () {
    function IfcShadingDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcShadingDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcShadingDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcShadingDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcShadingDeviceType;
  }();

  _exports.IfcShadingDeviceType = IfcShadingDeviceType;

  var IfcShapeAspect = /*#__PURE__*/function () {
    function IfcShapeAspect(expressID, type, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {
      _classCallCheck(this, IfcShapeAspect);

      this.expressID = expressID;
      this.type = type;
      this.ShapeRepresentations = ShapeRepresentations;
      this.Name = Name;
      this.Description = Description;
      this.ProductDefinitional = ProductDefinitional;
      this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;
    }

    _createClass(IfcShapeAspect, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ShapeRepresentations);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ProductDefinitional);
        ;
        args.push(this.PartOfProductDefinitionShape);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ShapeRepresentations = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ProductDefinitional = tape[ptr++];
        var PartOfProductDefinitionShape = tape[ptr++];
        return new IfcShapeAspect(expressID, type, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape);
      }
    }]);

    return IfcShapeAspect;
  }();

  _exports.IfcShapeAspect = IfcShapeAspect;

  var IfcShapeModel = /*#__PURE__*/function () {
    function IfcShapeModel(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
      _classCallCheck(this, IfcShapeModel);

      this.expressID = expressID;
      this.type = type;
      this.ContextOfItems = ContextOfItems;
      this.RepresentationIdentifier = RepresentationIdentifier;
      this.RepresentationType = RepresentationType;
      this.Items = Items;
    }

    _createClass(IfcShapeModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextOfItems);
        ;
        args.push(this.RepresentationIdentifier);
        ;
        args.push(this.RepresentationType);
        ;
        args.push(this.Items);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextOfItems = tape[ptr++];
        var RepresentationIdentifier = tape[ptr++];
        var RepresentationType = tape[ptr++];
        var Items = tape[ptr++];
        return new IfcShapeModel(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
      }
    }]);

    return IfcShapeModel;
  }();

  _exports.IfcShapeModel = IfcShapeModel;

  var IfcShapeRepresentation = /*#__PURE__*/function () {
    function IfcShapeRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
      _classCallCheck(this, IfcShapeRepresentation);

      this.expressID = expressID;
      this.type = type;
      this.ContextOfItems = ContextOfItems;
      this.RepresentationIdentifier = RepresentationIdentifier;
      this.RepresentationType = RepresentationType;
      this.Items = Items;
    }

    _createClass(IfcShapeRepresentation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextOfItems);
        ;
        args.push(this.RepresentationIdentifier);
        ;
        args.push(this.RepresentationType);
        ;
        args.push(this.Items);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextOfItems = tape[ptr++];
        var RepresentationIdentifier = tape[ptr++];
        var RepresentationType = tape[ptr++];
        var Items = tape[ptr++];
        return new IfcShapeRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
      }
    }]);

    return IfcShapeRepresentation;
  }();

  _exports.IfcShapeRepresentation = IfcShapeRepresentation;

  var IfcShellBasedSurfaceModel = /*#__PURE__*/function () {
    function IfcShellBasedSurfaceModel(expressID, type, SbsmBoundary) {
      _classCallCheck(this, IfcShellBasedSurfaceModel);

      this.expressID = expressID;
      this.type = type;
      this.SbsmBoundary = SbsmBoundary;
    }

    _createClass(IfcShellBasedSurfaceModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SbsmBoundary);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SbsmBoundary = tape[ptr++];
        return new IfcShellBasedSurfaceModel(expressID, type, SbsmBoundary);
      }
    }]);

    return IfcShellBasedSurfaceModel;
  }();

  _exports.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;

  var IfcSimpleProperty = /*#__PURE__*/function () {
    function IfcSimpleProperty(expressID, type, Name, Description) {
      _classCallCheck(this, IfcSimpleProperty);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
    }

    _createClass(IfcSimpleProperty, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        return new IfcSimpleProperty(expressID, type, Name, Description);
      }
    }]);

    return IfcSimpleProperty;
  }();

  _exports.IfcSimpleProperty = IfcSimpleProperty;

  var IfcSimplePropertyTemplate = /*#__PURE__*/function () {
    function IfcSimplePropertyTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {
      _classCallCheck(this, IfcSimplePropertyTemplate);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSimplePropertyTemplate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.TemplateType);
        ;
        args.push(this.PrimaryMeasureType);
        ;
        args.push(this.SecondaryMeasureType);
        ;
        args.push(this.Enumerators);
        ;
        args.push(this.PrimaryUnit);
        ;
        args.push(this.SecondaryUnit);
        ;
        args.push(this.Expression);
        ;
        args.push(this.AccessState);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var TemplateType = tape[ptr++];
        var PrimaryMeasureType = tape[ptr++];
        var SecondaryMeasureType = tape[ptr++];
        var Enumerators = tape[ptr++];
        var PrimaryUnit = tape[ptr++];
        var SecondaryUnit = tape[ptr++];
        var Expression = tape[ptr++];
        var AccessState = tape[ptr++];
        return new IfcSimplePropertyTemplate(expressID, type, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState);
      }
    }]);

    return IfcSimplePropertyTemplate;
  }();

  _exports.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;

  var IfcSite = /*#__PURE__*/function () {
    function IfcSite(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {
      _classCallCheck(this, IfcSite);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSite, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        args.push(this.RefLatitude);
        ;
        args.push(this.RefLongitude);
        ;
        args.push(this.RefElevation);
        ;
        args.push(this.LandTitleNumber);
        ;
        args.push(this.SiteAddress);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        var RefLatitude = tape[ptr++];
        var RefLongitude = tape[ptr++];
        var RefElevation = tape[ptr++];
        var LandTitleNumber = tape[ptr++];
        var SiteAddress = tape[ptr++];
        return new IfcSite(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress);
      }
    }]);

    return IfcSite;
  }();

  _exports.IfcSite = IfcSite;

  var IfcSlab = /*#__PURE__*/function () {
    function IfcSlab(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSlab);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSlab, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSlab(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSlab;
  }();

  _exports.IfcSlab = IfcSlab;

  var IfcSlabElementedCase = /*#__PURE__*/function () {
    function IfcSlabElementedCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSlabElementedCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSlabElementedCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSlabElementedCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSlabElementedCase;
  }();

  _exports.IfcSlabElementedCase = IfcSlabElementedCase;

  var IfcSlabStandardCase = /*#__PURE__*/function () {
    function IfcSlabStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSlabStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSlabStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSlabStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSlabStandardCase;
  }();

  _exports.IfcSlabStandardCase = IfcSlabStandardCase;

  var IfcSlabType = /*#__PURE__*/function () {
    function IfcSlabType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSlabType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSlabType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSlabType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSlabType;
  }();

  _exports.IfcSlabType = IfcSlabType;

  var IfcSlippageConnectionCondition = /*#__PURE__*/function () {
    function IfcSlippageConnectionCondition(expressID, type, Name, SlippageX, SlippageY, SlippageZ) {
      _classCallCheck(this, IfcSlippageConnectionCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.SlippageX = SlippageX;
      this.SlippageY = SlippageY;
      this.SlippageZ = SlippageZ;
    }

    _createClass(IfcSlippageConnectionCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.SlippageX);
        ;
        args.push(this.SlippageY);
        ;
        args.push(this.SlippageZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var SlippageX = tape[ptr++];
        var SlippageY = tape[ptr++];
        var SlippageZ = tape[ptr++];
        return new IfcSlippageConnectionCondition(expressID, type, Name, SlippageX, SlippageY, SlippageZ);
      }
    }]);

    return IfcSlippageConnectionCondition;
  }();

  _exports.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;

  var IfcSolarDevice = /*#__PURE__*/function () {
    function IfcSolarDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSolarDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSolarDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSolarDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSolarDevice;
  }();

  _exports.IfcSolarDevice = IfcSolarDevice;

  var IfcSolarDeviceType = /*#__PURE__*/function () {
    function IfcSolarDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSolarDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSolarDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSolarDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSolarDeviceType;
  }();

  _exports.IfcSolarDeviceType = IfcSolarDeviceType;

  var IfcSolidModel = /*#__PURE__*/function () {
    function IfcSolidModel(expressID, type) {
      _classCallCheck(this, IfcSolidModel);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcSolidModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcSolidModel(expressID, type);
      }
    }]);

    return IfcSolidModel;
  }();

  _exports.IfcSolidModel = IfcSolidModel;

  var IfcSpace = /*#__PURE__*/function () {
    function IfcSpace(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {
      _classCallCheck(this, IfcSpace);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSpace, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.ElevationWithFlooring);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var ElevationWithFlooring = tape[ptr++];
        return new IfcSpace(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring);
      }
    }]);

    return IfcSpace;
  }();

  _exports.IfcSpace = IfcSpace;

  var IfcSpaceHeater = /*#__PURE__*/function () {
    function IfcSpaceHeater(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSpaceHeater);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSpaceHeater, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSpaceHeater(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSpaceHeater;
  }();

  _exports.IfcSpaceHeater = IfcSpaceHeater;

  var IfcSpaceHeaterType = /*#__PURE__*/function () {
    function IfcSpaceHeaterType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSpaceHeaterType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSpaceHeaterType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSpaceHeaterType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSpaceHeaterType;
  }();

  _exports.IfcSpaceHeaterType = IfcSpaceHeaterType;

  var IfcSpaceType = /*#__PURE__*/function () {
    function IfcSpaceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {
      _classCallCheck(this, IfcSpaceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcSpaceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.LongName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var LongName = tape[ptr++];
        return new IfcSpaceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName);
      }
    }]);

    return IfcSpaceType;
  }();

  _exports.IfcSpaceType = IfcSpaceType;

  var IfcSpatialElement = /*#__PURE__*/function () {
    function IfcSpatialElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {
      _classCallCheck(this, IfcSpatialElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.LongName = LongName;
    }

    _createClass(IfcSpatialElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        return new IfcSpatialElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
      }
    }]);

    return IfcSpatialElement;
  }();

  _exports.IfcSpatialElement = IfcSpatialElement;

  var IfcSpatialElementType = /*#__PURE__*/function () {
    function IfcSpatialElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcSpatialElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcSpatialElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcSpatialElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcSpatialElementType;
  }();

  _exports.IfcSpatialElementType = IfcSpatialElementType;

  var IfcSpatialStructureElement = /*#__PURE__*/function () {
    function IfcSpatialStructureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
      _classCallCheck(this, IfcSpatialStructureElement);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSpatialStructureElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.CompositionType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var CompositionType = tape[ptr++];
        return new IfcSpatialStructureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
      }
    }]);

    return IfcSpatialStructureElement;
  }();

  _exports.IfcSpatialStructureElement = IfcSpatialStructureElement;

  var IfcSpatialStructureElementType = /*#__PURE__*/function () {
    function IfcSpatialStructureElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
      _classCallCheck(this, IfcSpatialStructureElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
    }

    _createClass(IfcSpatialStructureElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        return new IfcSpatialStructureElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
      }
    }]);

    return IfcSpatialStructureElementType;
  }();

  _exports.IfcSpatialStructureElementType = IfcSpatialStructureElementType;

  var IfcSpatialZone = /*#__PURE__*/function () {
    function IfcSpatialZone(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {
      _classCallCheck(this, IfcSpatialZone);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSpatialZone, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.LongName);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var LongName = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSpatialZone(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType);
      }
    }]);

    return IfcSpatialZone;
  }();

  _exports.IfcSpatialZone = IfcSpatialZone;

  var IfcSpatialZoneType = /*#__PURE__*/function () {
    function IfcSpatialZoneType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {
      _classCallCheck(this, IfcSpatialZoneType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcSpatialZoneType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.LongName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var LongName = tape[ptr++];
        return new IfcSpatialZoneType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName);
      }
    }]);

    return IfcSpatialZoneType;
  }();

  _exports.IfcSpatialZoneType = IfcSpatialZoneType;

  var IfcSphere = /*#__PURE__*/function () {
    function IfcSphere(expressID, type, Position, Radius) {
      _classCallCheck(this, IfcSphere);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.Radius = Radius;
    }

    _createClass(IfcSphere, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        return new IfcSphere(expressID, type, Position, Radius);
      }
    }]);

    return IfcSphere;
  }();

  _exports.IfcSphere = IfcSphere;

  var IfcSphericalSurface = /*#__PURE__*/function () {
    function IfcSphericalSurface(expressID, type, Position, Radius) {
      _classCallCheck(this, IfcSphericalSurface);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.Radius = Radius;
    }

    _createClass(IfcSphericalSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.Radius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var Radius = tape[ptr++];
        return new IfcSphericalSurface(expressID, type, Position, Radius);
      }
    }]);

    return IfcSphericalSurface;
  }();

  _exports.IfcSphericalSurface = IfcSphericalSurface;

  var IfcStackTerminal = /*#__PURE__*/function () {
    function IfcStackTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcStackTerminal);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcStackTerminal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStackTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcStackTerminal;
  }();

  _exports.IfcStackTerminal = IfcStackTerminal;

  var IfcStackTerminalType = /*#__PURE__*/function () {
    function IfcStackTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcStackTerminalType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcStackTerminalType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStackTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcStackTerminalType;
  }();

  _exports.IfcStackTerminalType = IfcStackTerminalType;

  var IfcStair = /*#__PURE__*/function () {
    function IfcStair(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcStair);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcStair, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStair(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcStair;
  }();

  _exports.IfcStair = IfcStair;

  var IfcStairFlight = /*#__PURE__*/function () {
    function IfcStairFlight(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {
      _classCallCheck(this, IfcStairFlight);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcStairFlight, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.NumberOfRisers);
        ;
        args.push(this.NumberOfTreads);
        ;
        args.push(this.RiserHeight);
        ;
        args.push(this.TreadLength);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var NumberOfRisers = tape[ptr++];
        var NumberOfTreads = tape[ptr++];
        var RiserHeight = tape[ptr++];
        var TreadLength = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStairFlight(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType);
      }
    }]);

    return IfcStairFlight;
  }();

  _exports.IfcStairFlight = IfcStairFlight;

  var IfcStairFlightType = /*#__PURE__*/function () {
    function IfcStairFlightType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcStairFlightType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcStairFlightType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStairFlightType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcStairFlightType;
  }();

  _exports.IfcStairFlightType = IfcStairFlightType;

  var IfcStairType = /*#__PURE__*/function () {
    function IfcStairType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcStairType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcStairType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStairType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcStairType;
  }();

  _exports.IfcStairType = IfcStairType;

  var IfcStructuralAction = /*#__PURE__*/function () {
    function IfcStructuralAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {
      _classCallCheck(this, IfcStructuralAction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralAction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.DestabilizingLoad);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var DestabilizingLoad = tape[ptr++];
        return new IfcStructuralAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
      }
    }]);

    return IfcStructuralAction;
  }();

  _exports.IfcStructuralAction = IfcStructuralAction;

  var IfcStructuralActivity = /*#__PURE__*/function () {
    function IfcStructuralActivity(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
      _classCallCheck(this, IfcStructuralActivity);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralActivity, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        return new IfcStructuralActivity(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
      }
    }]);

    return IfcStructuralActivity;
  }();

  _exports.IfcStructuralActivity = IfcStructuralActivity;

  var IfcStructuralAnalysisModel = /*#__PURE__*/function () {
    function IfcStructuralAnalysisModel(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {
      _classCallCheck(this, IfcStructuralAnalysisModel);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralAnalysisModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.OrientationOf2DPlane);
        ;
        args.push(this.LoadedBy);
        ;
        args.push(this.HasResults);
        ;
        args.push(this.SharedPlacement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var OrientationOf2DPlane = tape[ptr++];
        var LoadedBy = tape[ptr++];
        var HasResults = tape[ptr++];
        var SharedPlacement = tape[ptr++];
        return new IfcStructuralAnalysisModel(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement);
      }
    }]);

    return IfcStructuralAnalysisModel;
  }();

  _exports.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;

  var IfcStructuralConnection = /*#__PURE__*/function () {
    function IfcStructuralConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
      _classCallCheck(this, IfcStructuralConnection);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.AppliedCondition = AppliedCondition;
    }

    _createClass(IfcStructuralConnection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedCondition);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedCondition = tape[ptr++];
        return new IfcStructuralConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
      }
    }]);

    return IfcStructuralConnection;
  }();

  _exports.IfcStructuralConnection = IfcStructuralConnection;

  var IfcStructuralConnectionCondition = /*#__PURE__*/function () {
    function IfcStructuralConnectionCondition(expressID, type, Name) {
      _classCallCheck(this, IfcStructuralConnectionCondition);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcStructuralConnectionCondition, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcStructuralConnectionCondition(expressID, type, Name);
      }
    }]);

    return IfcStructuralConnectionCondition;
  }();

  _exports.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;

  var IfcStructuralCurveAction = /*#__PURE__*/function () {
    function IfcStructuralCurveAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
      _classCallCheck(this, IfcStructuralCurveAction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralCurveAction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.DestabilizingLoad);
        ;
        args.push(this.ProjectedOrTrue);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var DestabilizingLoad = tape[ptr++];
        var ProjectedOrTrue = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStructuralCurveAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
      }
    }]);

    return IfcStructuralCurveAction;
  }();

  _exports.IfcStructuralCurveAction = IfcStructuralCurveAction;

  var IfcStructuralCurveConnection = /*#__PURE__*/function () {
    function IfcStructuralCurveConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) {
      _classCallCheck(this, IfcStructuralCurveConnection);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralCurveConnection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedCondition);
        ;
        args.push(this.Axis);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedCondition = tape[ptr++];
        var Axis = tape[ptr++];
        return new IfcStructuralCurveConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis);
      }
    }]);

    return IfcStructuralCurveConnection;
  }();

  _exports.IfcStructuralCurveConnection = IfcStructuralCurveConnection;

  var IfcStructuralCurveMember = /*#__PURE__*/function () {
    function IfcStructuralCurveMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {
      _classCallCheck(this, IfcStructuralCurveMember);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralCurveMember, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Axis);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Axis = tape[ptr++];
        return new IfcStructuralCurveMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);
      }
    }]);

    return IfcStructuralCurveMember;
  }();

  _exports.IfcStructuralCurveMember = IfcStructuralCurveMember;

  var IfcStructuralCurveMemberVarying = /*#__PURE__*/function () {
    function IfcStructuralCurveMemberVarying(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {
      _classCallCheck(this, IfcStructuralCurveMemberVarying);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralCurveMemberVarying, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Axis);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Axis = tape[ptr++];
        return new IfcStructuralCurveMemberVarying(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);
      }
    }]);

    return IfcStructuralCurveMemberVarying;
  }();

  _exports.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;

  var IfcStructuralCurveReaction = /*#__PURE__*/function () {
    function IfcStructuralCurveReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {
      _classCallCheck(this, IfcStructuralCurveReaction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralCurveReaction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStructuralCurveReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType);
      }
    }]);

    return IfcStructuralCurveReaction;
  }();

  _exports.IfcStructuralCurveReaction = IfcStructuralCurveReaction;

  var IfcStructuralItem = /*#__PURE__*/function () {
    function IfcStructuralItem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
      _classCallCheck(this, IfcStructuralItem);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
    }

    _createClass(IfcStructuralItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        return new IfcStructuralItem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
      }
    }]);

    return IfcStructuralItem;
  }();

  _exports.IfcStructuralItem = IfcStructuralItem;

  var IfcStructuralLinearAction = /*#__PURE__*/function () {
    function IfcStructuralLinearAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
      _classCallCheck(this, IfcStructuralLinearAction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralLinearAction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.DestabilizingLoad);
        ;
        args.push(this.ProjectedOrTrue);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var DestabilizingLoad = tape[ptr++];
        var ProjectedOrTrue = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStructuralLinearAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
      }
    }]);

    return IfcStructuralLinearAction;
  }();

  _exports.IfcStructuralLinearAction = IfcStructuralLinearAction;

  var IfcStructuralLoad = /*#__PURE__*/function () {
    function IfcStructuralLoad(expressID, type, Name) {
      _classCallCheck(this, IfcStructuralLoad);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcStructuralLoad, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcStructuralLoad(expressID, type, Name);
      }
    }]);

    return IfcStructuralLoad;
  }();

  _exports.IfcStructuralLoad = IfcStructuralLoad;

  var IfcStructuralLoadCase = /*#__PURE__*/function () {
    function IfcStructuralLoadCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {
      _classCallCheck(this, IfcStructuralLoadCase);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralLoadCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.ActionType);
        ;
        args.push(this.ActionSource);
        ;
        args.push(this.Coefficient);
        ;
        args.push(this.Purpose);
        ;
        args.push(this.SelfWeightCoefficients);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var ActionType = tape[ptr++];
        var ActionSource = tape[ptr++];
        var Coefficient = tape[ptr++];
        var Purpose = tape[ptr++];
        var SelfWeightCoefficients = tape[ptr++];
        return new IfcStructuralLoadCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients);
      }
    }]);

    return IfcStructuralLoadCase;
  }();

  _exports.IfcStructuralLoadCase = IfcStructuralLoadCase;

  var IfcStructuralLoadConfiguration = /*#__PURE__*/function () {
    function IfcStructuralLoadConfiguration(expressID, type, Name, Values, Locations) {
      _classCallCheck(this, IfcStructuralLoadConfiguration);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Values = Values;
      this.Locations = Locations;
    }

    _createClass(IfcStructuralLoadConfiguration, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Values);
        ;
        args.push(this.Locations);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Values = tape[ptr++];
        var Locations = tape[ptr++];
        return new IfcStructuralLoadConfiguration(expressID, type, Name, Values, Locations);
      }
    }]);

    return IfcStructuralLoadConfiguration;
  }();

  _exports.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;

  var IfcStructuralLoadGroup = /*#__PURE__*/function () {
    function IfcStructuralLoadGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {
      _classCallCheck(this, IfcStructuralLoadGroup);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralLoadGroup, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.ActionType);
        ;
        args.push(this.ActionSource);
        ;
        args.push(this.Coefficient);
        ;
        args.push(this.Purpose);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var ActionType = tape[ptr++];
        var ActionSource = tape[ptr++];
        var Coefficient = tape[ptr++];
        var Purpose = tape[ptr++];
        return new IfcStructuralLoadGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);
      }
    }]);

    return IfcStructuralLoadGroup;
  }();

  _exports.IfcStructuralLoadGroup = IfcStructuralLoadGroup;

  var IfcStructuralLoadLinearForce = /*#__PURE__*/function () {
    function IfcStructuralLoadLinearForce(expressID, type, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {
      _classCallCheck(this, IfcStructuralLoadLinearForce);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.LinearForceX = LinearForceX;
      this.LinearForceY = LinearForceY;
      this.LinearForceZ = LinearForceZ;
      this.LinearMomentX = LinearMomentX;
      this.LinearMomentY = LinearMomentY;
      this.LinearMomentZ = LinearMomentZ;
    }

    _createClass(IfcStructuralLoadLinearForce, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.LinearForceX);
        ;
        args.push(this.LinearForceY);
        ;
        args.push(this.LinearForceZ);
        ;
        args.push(this.LinearMomentX);
        ;
        args.push(this.LinearMomentY);
        ;
        args.push(this.LinearMomentZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var LinearForceX = tape[ptr++];
        var LinearForceY = tape[ptr++];
        var LinearForceZ = tape[ptr++];
        var LinearMomentX = tape[ptr++];
        var LinearMomentY = tape[ptr++];
        var LinearMomentZ = tape[ptr++];
        return new IfcStructuralLoadLinearForce(expressID, type, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ);
      }
    }]);

    return IfcStructuralLoadLinearForce;
  }();

  _exports.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;

  var IfcStructuralLoadOrResult = /*#__PURE__*/function () {
    function IfcStructuralLoadOrResult(expressID, type, Name) {
      _classCallCheck(this, IfcStructuralLoadOrResult);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcStructuralLoadOrResult, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcStructuralLoadOrResult(expressID, type, Name);
      }
    }]);

    return IfcStructuralLoadOrResult;
  }();

  _exports.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;

  var IfcStructuralLoadPlanarForce = /*#__PURE__*/function () {
    function IfcStructuralLoadPlanarForce(expressID, type, Name, PlanarForceX, PlanarForceY, PlanarForceZ) {
      _classCallCheck(this, IfcStructuralLoadPlanarForce);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.PlanarForceX = PlanarForceX;
      this.PlanarForceY = PlanarForceY;
      this.PlanarForceZ = PlanarForceZ;
    }

    _createClass(IfcStructuralLoadPlanarForce, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.PlanarForceX);
        ;
        args.push(this.PlanarForceY);
        ;
        args.push(this.PlanarForceZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var PlanarForceX = tape[ptr++];
        var PlanarForceY = tape[ptr++];
        var PlanarForceZ = tape[ptr++];
        return new IfcStructuralLoadPlanarForce(expressID, type, Name, PlanarForceX, PlanarForceY, PlanarForceZ);
      }
    }]);

    return IfcStructuralLoadPlanarForce;
  }();

  _exports.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;

  var IfcStructuralLoadSingleDisplacement = /*#__PURE__*/function () {
    function IfcStructuralLoadSingleDisplacement(expressID, type, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {
      _classCallCheck(this, IfcStructuralLoadSingleDisplacement);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DisplacementX = DisplacementX;
      this.DisplacementY = DisplacementY;
      this.DisplacementZ = DisplacementZ;
      this.RotationalDisplacementRX = RotationalDisplacementRX;
      this.RotationalDisplacementRY = RotationalDisplacementRY;
      this.RotationalDisplacementRZ = RotationalDisplacementRZ;
    }

    _createClass(IfcStructuralLoadSingleDisplacement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DisplacementX);
        ;
        args.push(this.DisplacementY);
        ;
        args.push(this.DisplacementZ);
        ;
        args.push(this.RotationalDisplacementRX);
        ;
        args.push(this.RotationalDisplacementRY);
        ;
        args.push(this.RotationalDisplacementRZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DisplacementX = tape[ptr++];
        var DisplacementY = tape[ptr++];
        var DisplacementZ = tape[ptr++];
        var RotationalDisplacementRX = tape[ptr++];
        var RotationalDisplacementRY = tape[ptr++];
        var RotationalDisplacementRZ = tape[ptr++];
        return new IfcStructuralLoadSingleDisplacement(expressID, type, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);
      }
    }]);

    return IfcStructuralLoadSingleDisplacement;
  }();

  _exports.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;

  var IfcStructuralLoadSingleDisplacementDistortion = /*#__PURE__*/function () {
    function IfcStructuralLoadSingleDisplacementDistortion(expressID, type, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {
      _classCallCheck(this, IfcStructuralLoadSingleDisplacementDistortion);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DisplacementX = DisplacementX;
      this.DisplacementY = DisplacementY;
      this.DisplacementZ = DisplacementZ;
      this.RotationalDisplacementRX = RotationalDisplacementRX;
      this.RotationalDisplacementRY = RotationalDisplacementRY;
      this.RotationalDisplacementRZ = RotationalDisplacementRZ;
      this.Distortion = Distortion;
    }

    _createClass(IfcStructuralLoadSingleDisplacementDistortion, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DisplacementX);
        ;
        args.push(this.DisplacementY);
        ;
        args.push(this.DisplacementZ);
        ;
        args.push(this.RotationalDisplacementRX);
        ;
        args.push(this.RotationalDisplacementRY);
        ;
        args.push(this.RotationalDisplacementRZ);
        ;
        args.push(this.Distortion);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DisplacementX = tape[ptr++];
        var DisplacementY = tape[ptr++];
        var DisplacementZ = tape[ptr++];
        var RotationalDisplacementRX = tape[ptr++];
        var RotationalDisplacementRY = tape[ptr++];
        var RotationalDisplacementRZ = tape[ptr++];
        var Distortion = tape[ptr++];
        return new IfcStructuralLoadSingleDisplacementDistortion(expressID, type, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion);
      }
    }]);

    return IfcStructuralLoadSingleDisplacementDistortion;
  }();

  _exports.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;

  var IfcStructuralLoadSingleForce = /*#__PURE__*/function () {
    function IfcStructuralLoadSingleForce(expressID, type, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {
      _classCallCheck(this, IfcStructuralLoadSingleForce);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.ForceX = ForceX;
      this.ForceY = ForceY;
      this.ForceZ = ForceZ;
      this.MomentX = MomentX;
      this.MomentY = MomentY;
      this.MomentZ = MomentZ;
    }

    _createClass(IfcStructuralLoadSingleForce, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.ForceX);
        ;
        args.push(this.ForceY);
        ;
        args.push(this.ForceZ);
        ;
        args.push(this.MomentX);
        ;
        args.push(this.MomentY);
        ;
        args.push(this.MomentZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var ForceX = tape[ptr++];
        var ForceY = tape[ptr++];
        var ForceZ = tape[ptr++];
        var MomentX = tape[ptr++];
        var MomentY = tape[ptr++];
        var MomentZ = tape[ptr++];
        return new IfcStructuralLoadSingleForce(expressID, type, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);
      }
    }]);

    return IfcStructuralLoadSingleForce;
  }();

  _exports.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;

  var IfcStructuralLoadSingleForceWarping = /*#__PURE__*/function () {
    function IfcStructuralLoadSingleForceWarping(expressID, type, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {
      _classCallCheck(this, IfcStructuralLoadSingleForceWarping);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.ForceX = ForceX;
      this.ForceY = ForceY;
      this.ForceZ = ForceZ;
      this.MomentX = MomentX;
      this.MomentY = MomentY;
      this.MomentZ = MomentZ;
      this.WarpingMoment = WarpingMoment;
    }

    _createClass(IfcStructuralLoadSingleForceWarping, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.ForceX);
        ;
        args.push(this.ForceY);
        ;
        args.push(this.ForceZ);
        ;
        args.push(this.MomentX);
        ;
        args.push(this.MomentY);
        ;
        args.push(this.MomentZ);
        ;
        args.push(this.WarpingMoment);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var ForceX = tape[ptr++];
        var ForceY = tape[ptr++];
        var ForceZ = tape[ptr++];
        var MomentX = tape[ptr++];
        var MomentY = tape[ptr++];
        var MomentZ = tape[ptr++];
        var WarpingMoment = tape[ptr++];
        return new IfcStructuralLoadSingleForceWarping(expressID, type, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment);
      }
    }]);

    return IfcStructuralLoadSingleForceWarping;
  }();

  _exports.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;

  var IfcStructuralLoadStatic = /*#__PURE__*/function () {
    function IfcStructuralLoadStatic(expressID, type, Name) {
      _classCallCheck(this, IfcStructuralLoadStatic);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
    }

    _createClass(IfcStructuralLoadStatic, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        return new IfcStructuralLoadStatic(expressID, type, Name);
      }
    }]);

    return IfcStructuralLoadStatic;
  }();

  _exports.IfcStructuralLoadStatic = IfcStructuralLoadStatic;

  var IfcStructuralLoadTemperature = /*#__PURE__*/function () {
    function IfcStructuralLoadTemperature(expressID, type, Name, DeltaTConstant, DeltaTY, DeltaTZ) {
      _classCallCheck(this, IfcStructuralLoadTemperature);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DeltaTConstant = DeltaTConstant;
      this.DeltaTY = DeltaTY;
      this.DeltaTZ = DeltaTZ;
    }

    _createClass(IfcStructuralLoadTemperature, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DeltaTConstant);
        ;
        args.push(this.DeltaTY);
        ;
        args.push(this.DeltaTZ);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DeltaTConstant = tape[ptr++];
        var DeltaTY = tape[ptr++];
        var DeltaTZ = tape[ptr++];
        return new IfcStructuralLoadTemperature(expressID, type, Name, DeltaTConstant, DeltaTY, DeltaTZ);
      }
    }]);

    return IfcStructuralLoadTemperature;
  }();

  _exports.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;

  var IfcStructuralMember = /*#__PURE__*/function () {
    function IfcStructuralMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
      _classCallCheck(this, IfcStructuralMember);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
    }

    _createClass(IfcStructuralMember, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        return new IfcStructuralMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
      }
    }]);

    return IfcStructuralMember;
  }();

  _exports.IfcStructuralMember = IfcStructuralMember;

  var IfcStructuralPlanarAction = /*#__PURE__*/function () {
    function IfcStructuralPlanarAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
      _classCallCheck(this, IfcStructuralPlanarAction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralPlanarAction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.DestabilizingLoad);
        ;
        args.push(this.ProjectedOrTrue);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var DestabilizingLoad = tape[ptr++];
        var ProjectedOrTrue = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStructuralPlanarAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
      }
    }]);

    return IfcStructuralPlanarAction;
  }();

  _exports.IfcStructuralPlanarAction = IfcStructuralPlanarAction;

  var IfcStructuralPointAction = /*#__PURE__*/function () {
    function IfcStructuralPointAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {
      _classCallCheck(this, IfcStructuralPointAction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralPointAction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.DestabilizingLoad);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var DestabilizingLoad = tape[ptr++];
        return new IfcStructuralPointAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
      }
    }]);

    return IfcStructuralPointAction;
  }();

  _exports.IfcStructuralPointAction = IfcStructuralPointAction;

  var IfcStructuralPointConnection = /*#__PURE__*/function () {
    function IfcStructuralPointConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {
      _classCallCheck(this, IfcStructuralPointConnection);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralPointConnection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedCondition);
        ;
        args.push(this.ConditionCoordinateSystem);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedCondition = tape[ptr++];
        var ConditionCoordinateSystem = tape[ptr++];
        return new IfcStructuralPointConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem);
      }
    }]);

    return IfcStructuralPointConnection;
  }();

  _exports.IfcStructuralPointConnection = IfcStructuralPointConnection;

  var IfcStructuralPointReaction = /*#__PURE__*/function () {
    function IfcStructuralPointReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
      _classCallCheck(this, IfcStructuralPointReaction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralPointReaction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        return new IfcStructuralPointReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
      }
    }]);

    return IfcStructuralPointReaction;
  }();

  _exports.IfcStructuralPointReaction = IfcStructuralPointReaction;

  var IfcStructuralReaction = /*#__PURE__*/function () {
    function IfcStructuralReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
      _classCallCheck(this, IfcStructuralReaction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralReaction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        return new IfcStructuralReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
      }
    }]);

    return IfcStructuralReaction;
  }();

  _exports.IfcStructuralReaction = IfcStructuralReaction;

  var IfcStructuralResultGroup = /*#__PURE__*/function () {
    function IfcStructuralResultGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {
      _classCallCheck(this, IfcStructuralResultGroup);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.TheoryType = TheoryType;
      this.ResultForLoadGroup = ResultForLoadGroup;
      this.IsLinear = IsLinear;
    }

    _createClass(IfcStructuralResultGroup, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.TheoryType);
        ;
        args.push(this.ResultForLoadGroup);
        ;
        args.push(this.IsLinear);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var TheoryType = tape[ptr++];
        var ResultForLoadGroup = tape[ptr++];
        var IsLinear = tape[ptr++];
        return new IfcStructuralResultGroup(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear);
      }
    }]);

    return IfcStructuralResultGroup;
  }();

  _exports.IfcStructuralResultGroup = IfcStructuralResultGroup;

  var IfcStructuralSurfaceAction = /*#__PURE__*/function () {
    function IfcStructuralSurfaceAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
      _classCallCheck(this, IfcStructuralSurfaceAction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralSurfaceAction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.DestabilizingLoad);
        ;
        args.push(this.ProjectedOrTrue);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var DestabilizingLoad = tape[ptr++];
        var ProjectedOrTrue = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStructuralSurfaceAction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
      }
    }]);

    return IfcStructuralSurfaceAction;
  }();

  _exports.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;

  var IfcStructuralSurfaceConnection = /*#__PURE__*/function () {
    function IfcStructuralSurfaceConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
      _classCallCheck(this, IfcStructuralSurfaceConnection);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.AppliedCondition = AppliedCondition;
    }

    _createClass(IfcStructuralSurfaceConnection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedCondition);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedCondition = tape[ptr++];
        return new IfcStructuralSurfaceConnection(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
      }
    }]);

    return IfcStructuralSurfaceConnection;
  }();

  _exports.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;

  var IfcStructuralSurfaceMember = /*#__PURE__*/function () {
    function IfcStructuralSurfaceMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
      _classCallCheck(this, IfcStructuralSurfaceMember);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralSurfaceMember, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Thickness);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Thickness = tape[ptr++];
        return new IfcStructuralSurfaceMember(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);
      }
    }]);

    return IfcStructuralSurfaceMember;
  }();

  _exports.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;

  var IfcStructuralSurfaceMemberVarying = /*#__PURE__*/function () {
    function IfcStructuralSurfaceMemberVarying(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
      _classCallCheck(this, IfcStructuralSurfaceMemberVarying);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralSurfaceMemberVarying, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.Thickness);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var Thickness = tape[ptr++];
        return new IfcStructuralSurfaceMemberVarying(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);
      }
    }]);

    return IfcStructuralSurfaceMemberVarying;
  }();

  _exports.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;

  var IfcStructuralSurfaceReaction = /*#__PURE__*/function () {
    function IfcStructuralSurfaceReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {
      _classCallCheck(this, IfcStructuralSurfaceReaction);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcStructuralSurfaceReaction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.AppliedLoad);
        ;
        args.push(this.GlobalOrLocal);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var AppliedLoad = tape[ptr++];
        var GlobalOrLocal = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcStructuralSurfaceReaction(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType);
      }
    }]);

    return IfcStructuralSurfaceReaction;
  }();

  _exports.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;

  var IfcStyleModel = /*#__PURE__*/function () {
    function IfcStyleModel(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
      _classCallCheck(this, IfcStyleModel);

      this.expressID = expressID;
      this.type = type;
      this.ContextOfItems = ContextOfItems;
      this.RepresentationIdentifier = RepresentationIdentifier;
      this.RepresentationType = RepresentationType;
      this.Items = Items;
    }

    _createClass(IfcStyleModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextOfItems);
        ;
        args.push(this.RepresentationIdentifier);
        ;
        args.push(this.RepresentationType);
        ;
        args.push(this.Items);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextOfItems = tape[ptr++];
        var RepresentationIdentifier = tape[ptr++];
        var RepresentationType = tape[ptr++];
        var Items = tape[ptr++];
        return new IfcStyleModel(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
      }
    }]);

    return IfcStyleModel;
  }();

  _exports.IfcStyleModel = IfcStyleModel;

  var IfcStyledItem = /*#__PURE__*/function () {
    function IfcStyledItem(expressID, type, Item, Styles, Name) {
      _classCallCheck(this, IfcStyledItem);

      this.expressID = expressID;
      this.type = type;
      this.Item = Item;
      this.Styles = Styles;
      this.Name = Name;
    }

    _createClass(IfcStyledItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Item);
        ;
        args.push(this.Styles);
        ;
        args.push(this.Name);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Item = tape[ptr++];
        var Styles = tape[ptr++];
        var Name = tape[ptr++];
        return new IfcStyledItem(expressID, type, Item, Styles, Name);
      }
    }]);

    return IfcStyledItem;
  }();

  _exports.IfcStyledItem = IfcStyledItem;

  var IfcStyledRepresentation = /*#__PURE__*/function () {
    function IfcStyledRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
      _classCallCheck(this, IfcStyledRepresentation);

      this.expressID = expressID;
      this.type = type;
      this.ContextOfItems = ContextOfItems;
      this.RepresentationIdentifier = RepresentationIdentifier;
      this.RepresentationType = RepresentationType;
      this.Items = Items;
    }

    _createClass(IfcStyledRepresentation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextOfItems);
        ;
        args.push(this.RepresentationIdentifier);
        ;
        args.push(this.RepresentationType);
        ;
        args.push(this.Items);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextOfItems = tape[ptr++];
        var RepresentationIdentifier = tape[ptr++];
        var RepresentationType = tape[ptr++];
        var Items = tape[ptr++];
        return new IfcStyledRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
      }
    }]);

    return IfcStyledRepresentation;
  }();

  _exports.IfcStyledRepresentation = IfcStyledRepresentation;

  var IfcSubContractResource = /*#__PURE__*/function () {
    function IfcSubContractResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcSubContractResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSubContractResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Usage);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Usage = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSubContractResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcSubContractResource;
  }();

  _exports.IfcSubContractResource = IfcSubContractResource;

  var IfcSubContractResourceType = /*#__PURE__*/function () {
    function IfcSubContractResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
      _classCallCheck(this, IfcSubContractResourceType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSubContractResourceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        args.push(this.BaseCosts);
        ;
        args.push(this.BaseQuantity);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        var BaseCosts = tape[ptr++];
        var BaseQuantity = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSubContractResourceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType);
      }
    }]);

    return IfcSubContractResourceType;
  }();

  _exports.IfcSubContractResourceType = IfcSubContractResourceType;

  var IfcSubedge = /*#__PURE__*/function () {
    function IfcSubedge(expressID, type, EdgeStart, EdgeEnd, ParentEdge) {
      _classCallCheck(this, IfcSubedge);

      this.expressID = expressID;
      this.type = type;
      this.EdgeStart = EdgeStart;
      this.EdgeEnd = EdgeEnd;
      this.ParentEdge = ParentEdge;
    }

    _createClass(IfcSubedge, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.EdgeStart);
        ;
        args.push(this.EdgeEnd);
        ;
        args.push(this.ParentEdge);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var EdgeStart = tape[ptr++];
        var EdgeEnd = tape[ptr++];
        var ParentEdge = tape[ptr++];
        return new IfcSubedge(expressID, type, EdgeStart, EdgeEnd, ParentEdge);
      }
    }]);

    return IfcSubedge;
  }();

  _exports.IfcSubedge = IfcSubedge;

  var IfcSurface = /*#__PURE__*/function () {
    function IfcSurface(expressID, type) {
      _classCallCheck(this, IfcSurface);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcSurface(expressID, type);
      }
    }]);

    return IfcSurface;
  }();

  _exports.IfcSurface = IfcSurface;

  var IfcSurfaceCurve = /*#__PURE__*/function () {
    function IfcSurfaceCurve(expressID, type, Curve3D, AssociatedGeometry, MasterRepresentation) {
      _classCallCheck(this, IfcSurfaceCurve);

      this.expressID = expressID;
      this.type = type;
      this.Curve3D = Curve3D;
      this.AssociatedGeometry = AssociatedGeometry;
      this.MasterRepresentation = MasterRepresentation;
    }

    _createClass(IfcSurfaceCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Curve3D);
        ;
        args.push(this.AssociatedGeometry);
        ;
        args.push(this.MasterRepresentation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Curve3D = tape[ptr++];
        var AssociatedGeometry = tape[ptr++];
        var MasterRepresentation = tape[ptr++];
        return new IfcSurfaceCurve(expressID, type, Curve3D, AssociatedGeometry, MasterRepresentation);
      }
    }]);

    return IfcSurfaceCurve;
  }();

  _exports.IfcSurfaceCurve = IfcSurfaceCurve;

  var IfcSurfaceCurveSweptAreaSolid = /*#__PURE__*/function () {
    function IfcSurfaceCurveSweptAreaSolid(expressID, type, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {
      _classCallCheck(this, IfcSurfaceCurveSweptAreaSolid);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
      this.Directrix = Directrix;
      this.StartParam = StartParam;
      this.EndParam = EndParam;
      this.ReferenceSurface = ReferenceSurface;
    }

    _createClass(IfcSurfaceCurveSweptAreaSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        args.push(this.Directrix);
        ;
        args.push(this.StartParam);
        ;
        args.push(this.EndParam);
        ;
        args.push(this.ReferenceSurface);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        var Directrix = tape[ptr++];
        var StartParam = tape[ptr++];
        var EndParam = tape[ptr++];
        var ReferenceSurface = tape[ptr++];
        return new IfcSurfaceCurveSweptAreaSolid(expressID, type, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface);
      }
    }]);

    return IfcSurfaceCurveSweptAreaSolid;
  }();

  _exports.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;

  var IfcSurfaceFeature = /*#__PURE__*/function () {
    function IfcSurfaceFeature(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSurfaceFeature);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSurfaceFeature, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSurfaceFeature(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSurfaceFeature;
  }();

  _exports.IfcSurfaceFeature = IfcSurfaceFeature;

  var IfcSurfaceOfLinearExtrusion = /*#__PURE__*/function () {
    function IfcSurfaceOfLinearExtrusion(expressID, type, SweptCurve, Position, ExtrudedDirection, Depth) {
      _classCallCheck(this, IfcSurfaceOfLinearExtrusion);

      this.expressID = expressID;
      this.type = type;
      this.SweptCurve = SweptCurve;
      this.Position = Position;
      this.ExtrudedDirection = ExtrudedDirection;
      this.Depth = Depth;
    }

    _createClass(IfcSurfaceOfLinearExtrusion, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptCurve);
        ;
        args.push(this.Position);
        ;
        args.push(this.ExtrudedDirection);
        ;
        args.push(this.Depth);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptCurve = tape[ptr++];
        var Position = tape[ptr++];
        var ExtrudedDirection = tape[ptr++];
        var Depth = tape[ptr++];
        return new IfcSurfaceOfLinearExtrusion(expressID, type, SweptCurve, Position, ExtrudedDirection, Depth);
      }
    }]);

    return IfcSurfaceOfLinearExtrusion;
  }();

  _exports.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;

  var IfcSurfaceOfRevolution = /*#__PURE__*/function () {
    function IfcSurfaceOfRevolution(expressID, type, SweptCurve, Position, AxisPosition) {
      _classCallCheck(this, IfcSurfaceOfRevolution);

      this.expressID = expressID;
      this.type = type;
      this.SweptCurve = SweptCurve;
      this.Position = Position;
      this.AxisPosition = AxisPosition;
    }

    _createClass(IfcSurfaceOfRevolution, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptCurve);
        ;
        args.push(this.Position);
        ;
        args.push(this.AxisPosition);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptCurve = tape[ptr++];
        var Position = tape[ptr++];
        var AxisPosition = tape[ptr++];
        return new IfcSurfaceOfRevolution(expressID, type, SweptCurve, Position, AxisPosition);
      }
    }]);

    return IfcSurfaceOfRevolution;
  }();

  _exports.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;

  var IfcSurfaceReinforcementArea = /*#__PURE__*/function () {
    function IfcSurfaceReinforcementArea(expressID, type, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {
      _classCallCheck(this, IfcSurfaceReinforcementArea);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.SurfaceReinforcement1 = SurfaceReinforcement1;
      this.SurfaceReinforcement2 = SurfaceReinforcement2;
      this.ShearReinforcement = ShearReinforcement;
    }

    _createClass(IfcSurfaceReinforcementArea, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.SurfaceReinforcement1);
        ;
        args.push(this.SurfaceReinforcement2);
        ;
        args.push(this.ShearReinforcement);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var SurfaceReinforcement1 = tape[ptr++];
        var SurfaceReinforcement2 = tape[ptr++];
        var ShearReinforcement = tape[ptr++];
        return new IfcSurfaceReinforcementArea(expressID, type, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement);
      }
    }]);

    return IfcSurfaceReinforcementArea;
  }();

  _exports.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;

  var IfcSurfaceStyle = /*#__PURE__*/function () {
    function IfcSurfaceStyle(expressID, type, Name, Side, Styles) {
      _classCallCheck(this, IfcSurfaceStyle);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Side = Side;
      this.Styles = Styles;
    }

    _createClass(IfcSurfaceStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Side);
        ;
        args.push(this.Styles);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Side = tape[ptr++];
        var Styles = tape[ptr++];
        return new IfcSurfaceStyle(expressID, type, Name, Side, Styles);
      }
    }]);

    return IfcSurfaceStyle;
  }();

  _exports.IfcSurfaceStyle = IfcSurfaceStyle;

  var IfcSurfaceStyleLighting = /*#__PURE__*/function () {
    function IfcSurfaceStyleLighting(expressID, type, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {
      _classCallCheck(this, IfcSurfaceStyleLighting);

      this.expressID = expressID;
      this.type = type;
      this.DiffuseTransmissionColour = DiffuseTransmissionColour;
      this.DiffuseReflectionColour = DiffuseReflectionColour;
      this.TransmissionColour = TransmissionColour;
      this.ReflectanceColour = ReflectanceColour;
    }

    _createClass(IfcSurfaceStyleLighting, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.DiffuseTransmissionColour);
        ;
        args.push(this.DiffuseReflectionColour);
        ;
        args.push(this.TransmissionColour);
        ;
        args.push(this.ReflectanceColour);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var DiffuseTransmissionColour = tape[ptr++];
        var DiffuseReflectionColour = tape[ptr++];
        var TransmissionColour = tape[ptr++];
        var ReflectanceColour = tape[ptr++];
        return new IfcSurfaceStyleLighting(expressID, type, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour);
      }
    }]);

    return IfcSurfaceStyleLighting;
  }();

  _exports.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;

  var IfcSurfaceStyleRefraction = /*#__PURE__*/function () {
    function IfcSurfaceStyleRefraction(expressID, type, RefractionIndex, DispersionFactor) {
      _classCallCheck(this, IfcSurfaceStyleRefraction);

      this.expressID = expressID;
      this.type = type;
      this.RefractionIndex = RefractionIndex;
      this.DispersionFactor = DispersionFactor;
    }

    _createClass(IfcSurfaceStyleRefraction, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RefractionIndex);
        ;
        args.push(this.DispersionFactor);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RefractionIndex = tape[ptr++];
        var DispersionFactor = tape[ptr++];
        return new IfcSurfaceStyleRefraction(expressID, type, RefractionIndex, DispersionFactor);
      }
    }]);

    return IfcSurfaceStyleRefraction;
  }();

  _exports.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;

  var IfcSurfaceStyleRendering = /*#__PURE__*/function () {
    function IfcSurfaceStyleRendering(expressID, type, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {
      _classCallCheck(this, IfcSurfaceStyleRendering);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcSurfaceStyleRendering, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SurfaceColour);
        ;
        args.push(this.Transparency);
        ;
        args.push(this.DiffuseColour);
        ;
        args.push(this.TransmissionColour);
        ;
        args.push(this.DiffuseTransmissionColour);
        ;
        args.push(this.ReflectionColour);
        ;
        args.push(this.SpecularColour);
        ;
        args.push(this.SpecularHighlight);
        ;
        args.push(this.ReflectanceMethod);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SurfaceColour = tape[ptr++];
        var Transparency = tape[ptr++];
        var DiffuseColour = tape[ptr++];
        var TransmissionColour = tape[ptr++];
        var DiffuseTransmissionColour = tape[ptr++];
        var ReflectionColour = tape[ptr++];
        var SpecularColour = tape[ptr++];
        var SpecularHighlight = tape[ptr++];
        var ReflectanceMethod = tape[ptr++];
        return new IfcSurfaceStyleRendering(expressID, type, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod);
      }
    }]);

    return IfcSurfaceStyleRendering;
  }();

  _exports.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;

  var IfcSurfaceStyleShading = /*#__PURE__*/function () {
    function IfcSurfaceStyleShading(expressID, type, SurfaceColour, Transparency) {
      _classCallCheck(this, IfcSurfaceStyleShading);

      this.expressID = expressID;
      this.type = type;
      this.SurfaceColour = SurfaceColour;
      this.Transparency = Transparency;
    }

    _createClass(IfcSurfaceStyleShading, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SurfaceColour);
        ;
        args.push(this.Transparency);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SurfaceColour = tape[ptr++];
        var Transparency = tape[ptr++];
        return new IfcSurfaceStyleShading(expressID, type, SurfaceColour, Transparency);
      }
    }]);

    return IfcSurfaceStyleShading;
  }();

  _exports.IfcSurfaceStyleShading = IfcSurfaceStyleShading;

  var IfcSurfaceStyleWithTextures = /*#__PURE__*/function () {
    function IfcSurfaceStyleWithTextures(expressID, type, Textures) {
      _classCallCheck(this, IfcSurfaceStyleWithTextures);

      this.expressID = expressID;
      this.type = type;
      this.Textures = Textures;
    }

    _createClass(IfcSurfaceStyleWithTextures, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Textures);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Textures = tape[ptr++];
        return new IfcSurfaceStyleWithTextures(expressID, type, Textures);
      }
    }]);

    return IfcSurfaceStyleWithTextures;
  }();

  _exports.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;

  var IfcSurfaceTexture = /*#__PURE__*/function () {
    function IfcSurfaceTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter) {
      _classCallCheck(this, IfcSurfaceTexture);

      this.expressID = expressID;
      this.type = type;
      this.RepeatS = RepeatS;
      this.RepeatT = RepeatT;
      this.Mode = Mode;
      this.TextureTransform = TextureTransform;
      this.Parameter = Parameter;
    }

    _createClass(IfcSurfaceTexture, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RepeatS);
        ;
        args.push(this.RepeatT);
        ;
        args.push(this.Mode);
        ;
        args.push(this.TextureTransform);
        ;
        args.push(this.Parameter);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RepeatS = tape[ptr++];
        var RepeatT = tape[ptr++];
        var Mode = tape[ptr++];
        var TextureTransform = tape[ptr++];
        var Parameter = tape[ptr++];
        return new IfcSurfaceTexture(expressID, type, RepeatS, RepeatT, Mode, TextureTransform, Parameter);
      }
    }]);

    return IfcSurfaceTexture;
  }();

  _exports.IfcSurfaceTexture = IfcSurfaceTexture;

  var IfcSweptAreaSolid = /*#__PURE__*/function () {
    function IfcSweptAreaSolid(expressID, type, SweptArea, Position) {
      _classCallCheck(this, IfcSweptAreaSolid);

      this.expressID = expressID;
      this.type = type;
      this.SweptArea = SweptArea;
      this.Position = Position;
    }

    _createClass(IfcSweptAreaSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptArea);
        ;
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptArea = tape[ptr++];
        var Position = tape[ptr++];
        return new IfcSweptAreaSolid(expressID, type, SweptArea, Position);
      }
    }]);

    return IfcSweptAreaSolid;
  }();

  _exports.IfcSweptAreaSolid = IfcSweptAreaSolid;

  var IfcSweptDiskSolid = /*#__PURE__*/function () {
    function IfcSweptDiskSolid(expressID, type, Directrix, Radius, InnerRadius, StartParam, EndParam) {
      _classCallCheck(this, IfcSweptDiskSolid);

      this.expressID = expressID;
      this.type = type;
      this.Directrix = Directrix;
      this.Radius = Radius;
      this.InnerRadius = InnerRadius;
      this.StartParam = StartParam;
      this.EndParam = EndParam;
    }

    _createClass(IfcSweptDiskSolid, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Directrix);
        ;
        args.push(this.Radius);
        ;
        args.push(this.InnerRadius);
        ;
        args.push(this.StartParam);
        ;
        args.push(this.EndParam);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Directrix = tape[ptr++];
        var Radius = tape[ptr++];
        var InnerRadius = tape[ptr++];
        var StartParam = tape[ptr++];
        var EndParam = tape[ptr++];
        return new IfcSweptDiskSolid(expressID, type, Directrix, Radius, InnerRadius, StartParam, EndParam);
      }
    }]);

    return IfcSweptDiskSolid;
  }();

  _exports.IfcSweptDiskSolid = IfcSweptDiskSolid;

  var IfcSweptDiskSolidPolygonal = /*#__PURE__*/function () {
    function IfcSweptDiskSolidPolygonal(expressID, type, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {
      _classCallCheck(this, IfcSweptDiskSolidPolygonal);

      this.expressID = expressID;
      this.type = type;
      this.Directrix = Directrix;
      this.Radius = Radius;
      this.InnerRadius = InnerRadius;
      this.StartParam = StartParam;
      this.EndParam = EndParam;
      this.FilletRadius = FilletRadius;
    }

    _createClass(IfcSweptDiskSolidPolygonal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Directrix);
        ;
        args.push(this.Radius);
        ;
        args.push(this.InnerRadius);
        ;
        args.push(this.StartParam);
        ;
        args.push(this.EndParam);
        ;
        args.push(this.FilletRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Directrix = tape[ptr++];
        var Radius = tape[ptr++];
        var InnerRadius = tape[ptr++];
        var StartParam = tape[ptr++];
        var EndParam = tape[ptr++];
        var FilletRadius = tape[ptr++];
        return new IfcSweptDiskSolidPolygonal(expressID, type, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius);
      }
    }]);

    return IfcSweptDiskSolidPolygonal;
  }();

  _exports.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;

  var IfcSweptSurface = /*#__PURE__*/function () {
    function IfcSweptSurface(expressID, type, SweptCurve, Position) {
      _classCallCheck(this, IfcSweptSurface);

      this.expressID = expressID;
      this.type = type;
      this.SweptCurve = SweptCurve;
      this.Position = Position;
    }

    _createClass(IfcSweptSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.SweptCurve);
        ;
        args.push(this.Position);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var SweptCurve = tape[ptr++];
        var Position = tape[ptr++];
        return new IfcSweptSurface(expressID, type, SweptCurve, Position);
      }
    }]);

    return IfcSweptSurface;
  }();

  _exports.IfcSweptSurface = IfcSweptSurface;

  var IfcSwitchingDevice = /*#__PURE__*/function () {
    function IfcSwitchingDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSwitchingDevice);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSwitchingDevice, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSwitchingDevice(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSwitchingDevice;
  }();

  _exports.IfcSwitchingDevice = IfcSwitchingDevice;

  var IfcSwitchingDeviceType = /*#__PURE__*/function () {
    function IfcSwitchingDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSwitchingDeviceType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSwitchingDeviceType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSwitchingDeviceType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSwitchingDeviceType;
  }();

  _exports.IfcSwitchingDeviceType = IfcSwitchingDeviceType;

  var IfcSystem = /*#__PURE__*/function () {
    function IfcSystem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType) {
      _classCallCheck(this, IfcSystem);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
    }

    _createClass(IfcSystem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        return new IfcSystem(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType);
      }
    }]);

    return IfcSystem;
  }();

  _exports.IfcSystem = IfcSystem;

  var IfcSystemFurnitureElement = /*#__PURE__*/function () {
    function IfcSystemFurnitureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcSystemFurnitureElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSystemFurnitureElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSystemFurnitureElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcSystemFurnitureElement;
  }();

  _exports.IfcSystemFurnitureElement = IfcSystemFurnitureElement;

  var IfcSystemFurnitureElementType = /*#__PURE__*/function () {
    function IfcSystemFurnitureElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcSystemFurnitureElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcSystemFurnitureElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcSystemFurnitureElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcSystemFurnitureElementType;
  }();

  _exports.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;

  var IfcTShapeProfileDef = /*#__PURE__*/function () {
    function IfcTShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {
      _classCallCheck(this, IfcTShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Depth);
        ;
        args.push(this.FlangeWidth);
        ;
        args.push(this.WebThickness);
        ;
        args.push(this.FlangeThickness);
        ;
        args.push(this.FilletRadius);
        ;
        args.push(this.FlangeEdgeRadius);
        ;
        args.push(this.WebEdgeRadius);
        ;
        args.push(this.WebSlope);
        ;
        args.push(this.FlangeSlope);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Depth = tape[ptr++];
        var FlangeWidth = tape[ptr++];
        var WebThickness = tape[ptr++];
        var FlangeThickness = tape[ptr++];
        var FilletRadius = tape[ptr++];
        var FlangeEdgeRadius = tape[ptr++];
        var WebEdgeRadius = tape[ptr++];
        var WebSlope = tape[ptr++];
        var FlangeSlope = tape[ptr++];
        return new IfcTShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope);
      }
    }]);

    return IfcTShapeProfileDef;
  }();

  _exports.IfcTShapeProfileDef = IfcTShapeProfileDef;

  var IfcTable = /*#__PURE__*/function () {
    function IfcTable(expressID, type, Name, Rows, Columns) {
      _classCallCheck(this, IfcTable);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Rows = Rows;
      this.Columns = Columns;
    }

    _createClass(IfcTable, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Rows);
        ;
        args.push(this.Columns);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Rows = tape[ptr++];
        var Columns = tape[ptr++];
        return new IfcTable(expressID, type, Name, Rows, Columns);
      }
    }]);

    return IfcTable;
  }();

  _exports.IfcTable = IfcTable;

  var IfcTableColumn = /*#__PURE__*/function () {
    function IfcTableColumn(expressID, type, Identifier, Name, Description, Unit, ReferencePath) {
      _classCallCheck(this, IfcTableColumn);

      this.expressID = expressID;
      this.type = type;
      this.Identifier = Identifier;
      this.Name = Name;
      this.Description = Description;
      this.Unit = Unit;
      this.ReferencePath = ReferencePath;
    }

    _createClass(IfcTableColumn, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Identifier);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.Unit);
        ;
        args.push(this.ReferencePath);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Identifier = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var Unit = tape[ptr++];
        var ReferencePath = tape[ptr++];
        return new IfcTableColumn(expressID, type, Identifier, Name, Description, Unit, ReferencePath);
      }
    }]);

    return IfcTableColumn;
  }();

  _exports.IfcTableColumn = IfcTableColumn;

  var IfcTableRow = /*#__PURE__*/function () {
    function IfcTableRow(expressID, type, RowCells, IsHeading) {
      _classCallCheck(this, IfcTableRow);

      this.expressID = expressID;
      this.type = type;
      this.RowCells = RowCells;
      this.IsHeading = IsHeading;
    }

    _createClass(IfcTableRow, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.RowCells);
        ;
        args.push(this.IsHeading);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var RowCells = tape[ptr++];
        var IsHeading = tape[ptr++];
        return new IfcTableRow(expressID, type, RowCells, IsHeading);
      }
    }]);

    return IfcTableRow;
  }();

  _exports.IfcTableRow = IfcTableRow;

  var IfcTank = /*#__PURE__*/function () {
    function IfcTank(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcTank);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTank, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTank(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcTank;
  }();

  _exports.IfcTank = IfcTank;

  var IfcTankType = /*#__PURE__*/function () {
    function IfcTankType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcTankType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTankType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTankType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcTankType;
  }();

  _exports.IfcTankType = IfcTankType;

  var IfcTask = /*#__PURE__*/function () {
    function IfcTask(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {
      _classCallCheck(this, IfcTask);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTask, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.Status);
        ;
        args.push(this.WorkMethod);
        ;
        args.push(this.IsMilestone);
        ;
        args.push(this.Priority);
        ;
        args.push(this.TaskTime);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var Status = tape[ptr++];
        var WorkMethod = tape[ptr++];
        var IsMilestone = tape[ptr++];
        var Priority = tape[ptr++];
        var TaskTime = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTask(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType);
      }
    }]);

    return IfcTask;
  }();

  _exports.IfcTask = IfcTask;

  var IfcTaskTime = /*#__PURE__*/function () {
    function IfcTaskTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {
      _classCallCheck(this, IfcTaskTime);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTaskTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.DurationType);
        ;
        args.push(this.ScheduleDuration);
        ;
        args.push(this.ScheduleStart);
        ;
        args.push(this.ScheduleFinish);
        ;
        args.push(this.EarlyStart);
        ;
        args.push(this.EarlyFinish);
        ;
        args.push(this.LateStart);
        ;
        args.push(this.LateFinish);
        ;
        args.push(this.FreeFloat);
        ;
        args.push(this.TotalFloat);
        ;
        args.push(this.IsCritical);
        ;
        args.push(this.StatusTime);
        ;
        args.push(this.ActualDuration);
        ;
        args.push(this.ActualStart);
        ;
        args.push(this.ActualFinish);
        ;
        args.push(this.RemainingTime);
        ;
        args.push(this.Completion);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var DurationType = tape[ptr++];
        var ScheduleDuration = tape[ptr++];
        var ScheduleStart = tape[ptr++];
        var ScheduleFinish = tape[ptr++];
        var EarlyStart = tape[ptr++];
        var EarlyFinish = tape[ptr++];
        var LateStart = tape[ptr++];
        var LateFinish = tape[ptr++];
        var FreeFloat = tape[ptr++];
        var TotalFloat = tape[ptr++];
        var IsCritical = tape[ptr++];
        var StatusTime = tape[ptr++];
        var ActualDuration = tape[ptr++];
        var ActualStart = tape[ptr++];
        var ActualFinish = tape[ptr++];
        var RemainingTime = tape[ptr++];
        var Completion = tape[ptr++];
        return new IfcTaskTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);
      }
    }]);

    return IfcTaskTime;
  }();

  _exports.IfcTaskTime = IfcTaskTime;

  var IfcTaskTimeRecurring = /*#__PURE__*/function () {
    function IfcTaskTimeRecurring(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {
      _classCallCheck(this, IfcTaskTimeRecurring);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTaskTimeRecurring, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.DurationType);
        ;
        args.push(this.ScheduleDuration);
        ;
        args.push(this.ScheduleStart);
        ;
        args.push(this.ScheduleFinish);
        ;
        args.push(this.EarlyStart);
        ;
        args.push(this.EarlyFinish);
        ;
        args.push(this.LateStart);
        ;
        args.push(this.LateFinish);
        ;
        args.push(this.FreeFloat);
        ;
        args.push(this.TotalFloat);
        ;
        args.push(this.IsCritical);
        ;
        args.push(this.StatusTime);
        ;
        args.push(this.ActualDuration);
        ;
        args.push(this.ActualStart);
        ;
        args.push(this.ActualFinish);
        ;
        args.push(this.RemainingTime);
        ;
        args.push(this.Completion);
        ;
        args.push(this.Recurrence);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var DurationType = tape[ptr++];
        var ScheduleDuration = tape[ptr++];
        var ScheduleStart = tape[ptr++];
        var ScheduleFinish = tape[ptr++];
        var EarlyStart = tape[ptr++];
        var EarlyFinish = tape[ptr++];
        var LateStart = tape[ptr++];
        var LateFinish = tape[ptr++];
        var FreeFloat = tape[ptr++];
        var TotalFloat = tape[ptr++];
        var IsCritical = tape[ptr++];
        var StatusTime = tape[ptr++];
        var ActualDuration = tape[ptr++];
        var ActualStart = tape[ptr++];
        var ActualFinish = tape[ptr++];
        var RemainingTime = tape[ptr++];
        var Completion = tape[ptr++];
        var Recurrence = tape[ptr++];
        return new IfcTaskTimeRecurring(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence);
      }
    }]);

    return IfcTaskTimeRecurring;
  }();

  _exports.IfcTaskTimeRecurring = IfcTaskTimeRecurring;

  var IfcTaskType = /*#__PURE__*/function () {
    function IfcTaskType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {
      _classCallCheck(this, IfcTaskType);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTaskType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ProcessType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.WorkMethod);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ProcessType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var WorkMethod = tape[ptr++];
        return new IfcTaskType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod);
      }
    }]);

    return IfcTaskType;
  }();

  _exports.IfcTaskType = IfcTaskType;

  var IfcTelecomAddress = /*#__PURE__*/function () {
    function IfcTelecomAddress(expressID, type, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {
      _classCallCheck(this, IfcTelecomAddress);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTelecomAddress, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Purpose);
        ;
        args.push(this.Description);
        ;
        args.push(this.UserDefinedPurpose);
        ;
        args.push(this.TelephoneNumbers);
        ;
        args.push(this.FacsimileNumbers);
        ;
        args.push(this.PagerNumber);
        ;
        args.push(this.ElectronicMailAddresses);
        ;
        args.push(this.WWWHomePageURL);
        ;
        args.push(this.MessagingIDs);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Purpose = tape[ptr++];
        var Description = tape[ptr++];
        var UserDefinedPurpose = tape[ptr++];
        var TelephoneNumbers = tape[ptr++];
        var FacsimileNumbers = tape[ptr++];
        var PagerNumber = tape[ptr++];
        var ElectronicMailAddresses = tape[ptr++];
        var WWWHomePageURL = tape[ptr++];
        var MessagingIDs = tape[ptr++];
        return new IfcTelecomAddress(expressID, type, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs);
      }
    }]);

    return IfcTelecomAddress;
  }();

  _exports.IfcTelecomAddress = IfcTelecomAddress;

  var IfcTendon = /*#__PURE__*/function () {
    function IfcTendon(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {
      _classCallCheck(this, IfcTendon);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcTendon, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.SteelGrade);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.NominalDiameter);
        ;
        args.push(this.CrossSectionArea);
        ;
        args.push(this.TensionForce);
        ;
        args.push(this.PreStress);
        ;
        args.push(this.FrictionCoefficient);
        ;
        args.push(this.AnchorageSlip);
        ;
        args.push(this.MinCurvatureRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var SteelGrade = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var NominalDiameter = tape[ptr++];
        var CrossSectionArea = tape[ptr++];
        var TensionForce = tape[ptr++];
        var PreStress = tape[ptr++];
        var FrictionCoefficient = tape[ptr++];
        var AnchorageSlip = tape[ptr++];
        var MinCurvatureRadius = tape[ptr++];
        return new IfcTendon(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius);
      }
    }]);

    return IfcTendon;
  }();

  _exports.IfcTendon = IfcTendon;

  var IfcTendonAnchor = /*#__PURE__*/function () {
    function IfcTendonAnchor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {
      _classCallCheck(this, IfcTendonAnchor);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcTendonAnchor, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.SteelGrade);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var SteelGrade = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTendonAnchor(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType);
      }
    }]);

    return IfcTendonAnchor;
  }();

  _exports.IfcTendonAnchor = IfcTendonAnchor;

  var IfcTendonAnchorType = /*#__PURE__*/function () {
    function IfcTendonAnchorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcTendonAnchorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTendonAnchorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTendonAnchorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcTendonAnchorType;
  }();

  _exports.IfcTendonAnchorType = IfcTendonAnchorType;

  var IfcTendonConduit = /*#__PURE__*/function () {
    function IfcTendonConduit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {
      _classCallCheck(this, IfcTendonConduit);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcTendonConduit, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.SteelGrade);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var SteelGrade = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTendonConduit(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType);
      }
    }]);

    return IfcTendonConduit;
  }();

  _exports.IfcTendonConduit = IfcTendonConduit;

  var IfcTendonConduitType = /*#__PURE__*/function () {
    function IfcTendonConduitType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcTendonConduitType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTendonConduitType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTendonConduitType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcTendonConduitType;
  }();

  _exports.IfcTendonConduitType = IfcTendonConduitType;

  var IfcTendonType = /*#__PURE__*/function () {
    function IfcTendonType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {
      _classCallCheck(this, IfcTendonType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcTendonType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.NominalDiameter);
        ;
        args.push(this.CrossSectionArea);
        ;
        args.push(this.SheathDiameter);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var NominalDiameter = tape[ptr++];
        var CrossSectionArea = tape[ptr++];
        var SheathDiameter = tape[ptr++];
        return new IfcTendonType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter);
      }
    }]);

    return IfcTendonType;
  }();

  _exports.IfcTendonType = IfcTendonType;

  var IfcTessellatedFaceSet = /*#__PURE__*/function () {
    function IfcTessellatedFaceSet(expressID, type, Coordinates) {
      _classCallCheck(this, IfcTessellatedFaceSet);

      this.expressID = expressID;
      this.type = type;
      this.Coordinates = Coordinates;
    }

    _createClass(IfcTessellatedFaceSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Coordinates);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Coordinates = tape[ptr++];
        return new IfcTessellatedFaceSet(expressID, type, Coordinates);
      }
    }]);

    return IfcTessellatedFaceSet;
  }();

  _exports.IfcTessellatedFaceSet = IfcTessellatedFaceSet;

  var IfcTessellatedItem = /*#__PURE__*/function () {
    function IfcTessellatedItem(expressID, type) {
      _classCallCheck(this, IfcTessellatedItem);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcTessellatedItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcTessellatedItem(expressID, type);
      }
    }]);

    return IfcTessellatedItem;
  }();

  _exports.IfcTessellatedItem = IfcTessellatedItem;

  var IfcTextLiteral = /*#__PURE__*/function () {
    function IfcTextLiteral(expressID, type, Literal, Placement, Path) {
      _classCallCheck(this, IfcTextLiteral);

      this.expressID = expressID;
      this.type = type;
      this.Literal = Literal;
      this.Placement = Placement;
      this.Path = Path;
    }

    _createClass(IfcTextLiteral, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Literal);
        ;
        args.push(this.Placement);
        ;
        args.push(this.Path);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Literal = tape[ptr++];
        var Placement = tape[ptr++];
        var Path = tape[ptr++];
        return new IfcTextLiteral(expressID, type, Literal, Placement, Path);
      }
    }]);

    return IfcTextLiteral;
  }();

  _exports.IfcTextLiteral = IfcTextLiteral;

  var IfcTextLiteralWithExtent = /*#__PURE__*/function () {
    function IfcTextLiteralWithExtent(expressID, type, Literal, Placement, Path, Extent, BoxAlignment) {
      _classCallCheck(this, IfcTextLiteralWithExtent);

      this.expressID = expressID;
      this.type = type;
      this.Literal = Literal;
      this.Placement = Placement;
      this.Path = Path;
      this.Extent = Extent;
      this.BoxAlignment = BoxAlignment;
    }

    _createClass(IfcTextLiteralWithExtent, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Literal);
        ;
        args.push(this.Placement);
        ;
        args.push(this.Path);
        ;
        args.push(this.Extent);
        ;
        args.push(this.BoxAlignment);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Literal = tape[ptr++];
        var Placement = tape[ptr++];
        var Path = tape[ptr++];
        var Extent = tape[ptr++];
        var BoxAlignment = tape[ptr++];
        return new IfcTextLiteralWithExtent(expressID, type, Literal, Placement, Path, Extent, BoxAlignment);
      }
    }]);

    return IfcTextLiteralWithExtent;
  }();

  _exports.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;

  var IfcTextStyle = /*#__PURE__*/function () {
    function IfcTextStyle(expressID, type, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {
      _classCallCheck(this, IfcTextStyle);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.TextCharacterAppearance = TextCharacterAppearance;
      this.TextStyle = TextStyle;
      this.TextFontStyle = TextFontStyle;
      this.ModelOrDraughting = ModelOrDraughting;
    }

    _createClass(IfcTextStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.TextCharacterAppearance);
        ;
        args.push(this.TextStyle);
        ;
        args.push(this.TextFontStyle);
        ;
        args.push(this.ModelOrDraughting);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var TextCharacterAppearance = tape[ptr++];
        var TextStyle = tape[ptr++];
        var TextFontStyle = tape[ptr++];
        var ModelOrDraughting = tape[ptr++];
        return new IfcTextStyle(expressID, type, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting);
      }
    }]);

    return IfcTextStyle;
  }();

  _exports.IfcTextStyle = IfcTextStyle;

  var IfcTextStyleFontModel = /*#__PURE__*/function () {
    function IfcTextStyleFontModel(expressID, type, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {
      _classCallCheck(this, IfcTextStyleFontModel);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.FontFamily = FontFamily;
      this.FontStyle = FontStyle;
      this.FontVariant = FontVariant;
      this.FontWeight = FontWeight;
      this.FontSize = FontSize;
    }

    _createClass(IfcTextStyleFontModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.FontFamily);
        ;
        args.push(this.FontStyle);
        ;
        args.push(this.FontVariant);
        ;
        args.push(this.FontWeight);
        ;
        args.push(this.FontSize);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var FontFamily = tape[ptr++];
        var FontStyle = tape[ptr++];
        var FontVariant = tape[ptr++];
        var FontWeight = tape[ptr++];
        var FontSize = tape[ptr++];
        return new IfcTextStyleFontModel(expressID, type, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize);
      }
    }]);

    return IfcTextStyleFontModel;
  }();

  _exports.IfcTextStyleFontModel = IfcTextStyleFontModel;

  var IfcTextStyleForDefinedFont = /*#__PURE__*/function () {
    function IfcTextStyleForDefinedFont(expressID, type, Colour, BackgroundColour) {
      _classCallCheck(this, IfcTextStyleForDefinedFont);

      this.expressID = expressID;
      this.type = type;
      this.Colour = Colour;
      this.BackgroundColour = BackgroundColour;
    }

    _createClass(IfcTextStyleForDefinedFont, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Colour);
        ;
        args.push(this.BackgroundColour);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Colour = tape[ptr++];
        var BackgroundColour = tape[ptr++];
        return new IfcTextStyleForDefinedFont(expressID, type, Colour, BackgroundColour);
      }
    }]);

    return IfcTextStyleForDefinedFont;
  }();

  _exports.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;

  var IfcTextStyleTextModel = /*#__PURE__*/function () {
    function IfcTextStyleTextModel(expressID, type, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {
      _classCallCheck(this, IfcTextStyleTextModel);

      this.expressID = expressID;
      this.type = type;
      this.TextIndent = TextIndent;
      this.TextAlign = TextAlign;
      this.TextDecoration = TextDecoration;
      this.LetterSpacing = LetterSpacing;
      this.WordSpacing = WordSpacing;
      this.TextTransform = TextTransform;
      this.LineHeight = LineHeight;
    }

    _createClass(IfcTextStyleTextModel, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TextIndent);
        ;
        args.push(this.TextAlign);
        ;
        args.push(this.TextDecoration);
        ;
        args.push(this.LetterSpacing);
        ;
        args.push(this.WordSpacing);
        ;
        args.push(this.TextTransform);
        ;
        args.push(this.LineHeight);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TextIndent = tape[ptr++];
        var TextAlign = tape[ptr++];
        var TextDecoration = tape[ptr++];
        var LetterSpacing = tape[ptr++];
        var WordSpacing = tape[ptr++];
        var TextTransform = tape[ptr++];
        var LineHeight = tape[ptr++];
        return new IfcTextStyleTextModel(expressID, type, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight);
      }
    }]);

    return IfcTextStyleTextModel;
  }();

  _exports.IfcTextStyleTextModel = IfcTextStyleTextModel;

  var IfcTextureCoordinate = /*#__PURE__*/function () {
    function IfcTextureCoordinate(expressID, type, Maps) {
      _classCallCheck(this, IfcTextureCoordinate);

      this.expressID = expressID;
      this.type = type;
      this.Maps = Maps;
    }

    _createClass(IfcTextureCoordinate, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Maps);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Maps = tape[ptr++];
        return new IfcTextureCoordinate(expressID, type, Maps);
      }
    }]);

    return IfcTextureCoordinate;
  }();

  _exports.IfcTextureCoordinate = IfcTextureCoordinate;

  var IfcTextureCoordinateGenerator = /*#__PURE__*/function () {
    function IfcTextureCoordinateGenerator(expressID, type, Maps, Mode, Parameter) {
      _classCallCheck(this, IfcTextureCoordinateGenerator);

      this.expressID = expressID;
      this.type = type;
      this.Maps = Maps;
      this.Mode = Mode;
      this.Parameter = Parameter;
    }

    _createClass(IfcTextureCoordinateGenerator, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Maps);
        ;
        args.push(this.Mode);
        ;
        args.push(this.Parameter);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Maps = tape[ptr++];
        var Mode = tape[ptr++];
        var Parameter = tape[ptr++];
        return new IfcTextureCoordinateGenerator(expressID, type, Maps, Mode, Parameter);
      }
    }]);

    return IfcTextureCoordinateGenerator;
  }();

  _exports.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;

  var IfcTextureMap = /*#__PURE__*/function () {
    function IfcTextureMap(expressID, type, Maps, Vertices, MappedTo) {
      _classCallCheck(this, IfcTextureMap);

      this.expressID = expressID;
      this.type = type;
      this.Maps = Maps;
      this.Vertices = Vertices;
      this.MappedTo = MappedTo;
    }

    _createClass(IfcTextureMap, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Maps);
        ;
        args.push(this.Vertices);
        ;
        args.push(this.MappedTo);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Maps = tape[ptr++];
        var Vertices = tape[ptr++];
        var MappedTo = tape[ptr++];
        return new IfcTextureMap(expressID, type, Maps, Vertices, MappedTo);
      }
    }]);

    return IfcTextureMap;
  }();

  _exports.IfcTextureMap = IfcTextureMap;

  var IfcTextureVertex = /*#__PURE__*/function () {
    function IfcTextureVertex(expressID, type, Coordinates) {
      _classCallCheck(this, IfcTextureVertex);

      this.expressID = expressID;
      this.type = type;
      this.Coordinates = Coordinates;
    }

    _createClass(IfcTextureVertex, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Coordinates);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Coordinates = tape[ptr++];
        return new IfcTextureVertex(expressID, type, Coordinates);
      }
    }]);

    return IfcTextureVertex;
  }();

  _exports.IfcTextureVertex = IfcTextureVertex;

  var IfcTextureVertexList = /*#__PURE__*/function () {
    function IfcTextureVertexList(expressID, type, TexCoordsList) {
      _classCallCheck(this, IfcTextureVertexList);

      this.expressID = expressID;
      this.type = type;
      this.TexCoordsList = TexCoordsList;
    }

    _createClass(IfcTextureVertexList, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.TexCoordsList);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var TexCoordsList = tape[ptr++];
        return new IfcTextureVertexList(expressID, type, TexCoordsList);
      }
    }]);

    return IfcTextureVertexList;
  }();

  _exports.IfcTextureVertexList = IfcTextureVertexList;

  var IfcTimePeriod = /*#__PURE__*/function () {
    function IfcTimePeriod(expressID, type, StartTime, EndTime) {
      _classCallCheck(this, IfcTimePeriod);

      this.expressID = expressID;
      this.type = type;
      this.StartTime = StartTime;
      this.EndTime = EndTime;
    }

    _createClass(IfcTimePeriod, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.StartTime);
        ;
        args.push(this.EndTime);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var StartTime = tape[ptr++];
        var EndTime = tape[ptr++];
        return new IfcTimePeriod(expressID, type, StartTime, EndTime);
      }
    }]);

    return IfcTimePeriod;
  }();

  _exports.IfcTimePeriod = IfcTimePeriod;

  var IfcTimeSeries = /*#__PURE__*/function () {
    function IfcTimeSeries(expressID, type, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {
      _classCallCheck(this, IfcTimeSeries);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.Description = Description;
      this.StartTime = StartTime;
      this.EndTime = EndTime;
      this.TimeSeriesDataType = TimeSeriesDataType;
      this.DataOrigin = DataOrigin;
      this.UserDefinedDataOrigin = UserDefinedDataOrigin;
      this.Unit = Unit;
    }

    _createClass(IfcTimeSeries, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.StartTime);
        ;
        args.push(this.EndTime);
        ;
        args.push(this.TimeSeriesDataType);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.Unit);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var StartTime = tape[ptr++];
        var EndTime = tape[ptr++];
        var TimeSeriesDataType = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var Unit = tape[ptr++];
        return new IfcTimeSeries(expressID, type, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
      }
    }]);

    return IfcTimeSeries;
  }();

  _exports.IfcTimeSeries = IfcTimeSeries;

  var IfcTimeSeriesValue = /*#__PURE__*/function () {
    function IfcTimeSeriesValue(expressID, type, ListValues) {
      _classCallCheck(this, IfcTimeSeriesValue);

      this.expressID = expressID;
      this.type = type;
      this.ListValues = ListValues;
    }

    _createClass(IfcTimeSeriesValue, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ListValues);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ListValues = tape[ptr++];
        return new IfcTimeSeriesValue(expressID, type, ListValues);
      }
    }]);

    return IfcTimeSeriesValue;
  }();

  _exports.IfcTimeSeriesValue = IfcTimeSeriesValue;

  var IfcTopologicalRepresentationItem = /*#__PURE__*/function () {
    function IfcTopologicalRepresentationItem(expressID, type) {
      _classCallCheck(this, IfcTopologicalRepresentationItem);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcTopologicalRepresentationItem, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcTopologicalRepresentationItem(expressID, type);
      }
    }]);

    return IfcTopologicalRepresentationItem;
  }();

  _exports.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;

  var IfcTopologyRepresentation = /*#__PURE__*/function () {
    function IfcTopologyRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
      _classCallCheck(this, IfcTopologyRepresentation);

      this.expressID = expressID;
      this.type = type;
      this.ContextOfItems = ContextOfItems;
      this.RepresentationIdentifier = RepresentationIdentifier;
      this.RepresentationType = RepresentationType;
      this.Items = Items;
    }

    _createClass(IfcTopologyRepresentation, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ContextOfItems);
        ;
        args.push(this.RepresentationIdentifier);
        ;
        args.push(this.RepresentationType);
        ;
        args.push(this.Items);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ContextOfItems = tape[ptr++];
        var RepresentationIdentifier = tape[ptr++];
        var RepresentationType = tape[ptr++];
        var Items = tape[ptr++];
        return new IfcTopologyRepresentation(expressID, type, ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
      }
    }]);

    return IfcTopologyRepresentation;
  }();

  _exports.IfcTopologyRepresentation = IfcTopologyRepresentation;

  var IfcToroidalSurface = /*#__PURE__*/function () {
    function IfcToroidalSurface(expressID, type, Position, MajorRadius, MinorRadius) {
      _classCallCheck(this, IfcToroidalSurface);

      this.expressID = expressID;
      this.type = type;
      this.Position = Position;
      this.MajorRadius = MajorRadius;
      this.MinorRadius = MinorRadius;
    }

    _createClass(IfcToroidalSurface, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Position);
        ;
        args.push(this.MajorRadius);
        ;
        args.push(this.MinorRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Position = tape[ptr++];
        var MajorRadius = tape[ptr++];
        var MinorRadius = tape[ptr++];
        return new IfcToroidalSurface(expressID, type, Position, MajorRadius, MinorRadius);
      }
    }]);

    return IfcToroidalSurface;
  }();

  _exports.IfcToroidalSurface = IfcToroidalSurface;

  var IfcTransformer = /*#__PURE__*/function () {
    function IfcTransformer(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcTransformer);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTransformer, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTransformer(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcTransformer;
  }();

  _exports.IfcTransformer = IfcTransformer;

  var IfcTransformerType = /*#__PURE__*/function () {
    function IfcTransformerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcTransformerType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTransformerType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTransformerType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcTransformerType;
  }();

  _exports.IfcTransformerType = IfcTransformerType;

  var IfcTransitionCurveSegment2D = /*#__PURE__*/function () {
    function IfcTransitionCurveSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength, StartRadius, EndRadius, IsStartRadiusCCW, IsEndRadiusCCW, TransitionCurveType) {
      _classCallCheck(this, IfcTransitionCurveSegment2D);

      this.expressID = expressID;
      this.type = type;
      this.StartPoint = StartPoint;
      this.StartDirection = StartDirection;
      this.SegmentLength = SegmentLength;
      this.StartRadius = StartRadius;
      this.EndRadius = EndRadius;
      this.IsStartRadiusCCW = IsStartRadiusCCW;
      this.IsEndRadiusCCW = IsEndRadiusCCW;
      this.TransitionCurveType = TransitionCurveType;
    }

    _createClass(IfcTransitionCurveSegment2D, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.StartPoint);
        ;
        args.push(this.StartDirection);
        ;
        args.push(this.SegmentLength);
        ;
        args.push(this.StartRadius);
        ;
        args.push(this.EndRadius);
        ;
        args.push(this.IsStartRadiusCCW);
        ;
        args.push(this.IsEndRadiusCCW);
        ;
        args.push(this.TransitionCurveType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var StartPoint = tape[ptr++];
        var StartDirection = tape[ptr++];
        var SegmentLength = tape[ptr++];
        var StartRadius = tape[ptr++];
        var EndRadius = tape[ptr++];
        var IsStartRadiusCCW = tape[ptr++];
        var IsEndRadiusCCW = tape[ptr++];
        var TransitionCurveType = tape[ptr++];
        return new IfcTransitionCurveSegment2D(expressID, type, StartPoint, StartDirection, SegmentLength, StartRadius, EndRadius, IsStartRadiusCCW, IsEndRadiusCCW, TransitionCurveType);
      }
    }]);

    return IfcTransitionCurveSegment2D;
  }();

  _exports.IfcTransitionCurveSegment2D = IfcTransitionCurveSegment2D;

  var IfcTransportElement = /*#__PURE__*/function () {
    function IfcTransportElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcTransportElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTransportElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTransportElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcTransportElement;
  }();

  _exports.IfcTransportElement = IfcTransportElement;

  var IfcTransportElementType = /*#__PURE__*/function () {
    function IfcTransportElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcTransportElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTransportElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTransportElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcTransportElementType;
  }();

  _exports.IfcTransportElementType = IfcTransportElementType;

  var IfcTrapeziumProfileDef = /*#__PURE__*/function () {
    function IfcTrapeziumProfileDef(expressID, type, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {
      _classCallCheck(this, IfcTrapeziumProfileDef);

      this.expressID = expressID;
      this.type = type;
      this.ProfileType = ProfileType;
      this.ProfileName = ProfileName;
      this.Position = Position;
      this.BottomXDim = BottomXDim;
      this.TopXDim = TopXDim;
      this.YDim = YDim;
      this.TopXOffset = TopXOffset;
    }

    _createClass(IfcTrapeziumProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.BottomXDim);
        ;
        args.push(this.TopXDim);
        ;
        args.push(this.YDim);
        ;
        args.push(this.TopXOffset);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var BottomXDim = tape[ptr++];
        var TopXDim = tape[ptr++];
        var YDim = tape[ptr++];
        var TopXOffset = tape[ptr++];
        return new IfcTrapeziumProfileDef(expressID, type, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset);
      }
    }]);

    return IfcTrapeziumProfileDef;
  }();

  _exports.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;

  var IfcTriangulatedFaceSet = /*#__PURE__*/function () {
    function IfcTriangulatedFaceSet(expressID, type, Coordinates, Normals, Closed, CoordIndex, PnIndex) {
      _classCallCheck(this, IfcTriangulatedFaceSet);

      this.expressID = expressID;
      this.type = type;
      this.Coordinates = Coordinates;
      this.Normals = Normals;
      this.Closed = Closed;
      this.CoordIndex = CoordIndex;
      this.PnIndex = PnIndex;
    }

    _createClass(IfcTriangulatedFaceSet, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Coordinates);
        ;
        args.push(this.Normals);
        ;
        args.push(this.Closed);
        ;
        args.push(this.CoordIndex);
        ;
        args.push(this.PnIndex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Coordinates = tape[ptr++];
        var Normals = tape[ptr++];
        var Closed = tape[ptr++];
        var CoordIndex = tape[ptr++];
        var PnIndex = tape[ptr++];
        return new IfcTriangulatedFaceSet(expressID, type, Coordinates, Normals, Closed, CoordIndex, PnIndex);
      }
    }]);

    return IfcTriangulatedFaceSet;
  }();

  _exports.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;

  var IfcTriangulatedIrregularNetwork = /*#__PURE__*/function () {
    function IfcTriangulatedIrregularNetwork(expressID, type, Coordinates, Normals, Closed, CoordIndex, PnIndex, Flags) {
      _classCallCheck(this, IfcTriangulatedIrregularNetwork);

      this.expressID = expressID;
      this.type = type;
      this.Coordinates = Coordinates;
      this.Normals = Normals;
      this.Closed = Closed;
      this.CoordIndex = CoordIndex;
      this.PnIndex = PnIndex;
      this.Flags = Flags;
    }

    _createClass(IfcTriangulatedIrregularNetwork, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Coordinates);
        ;
        args.push(this.Normals);
        ;
        args.push(this.Closed);
        ;
        args.push(this.CoordIndex);
        ;
        args.push(this.PnIndex);
        ;
        args.push(this.Flags);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Coordinates = tape[ptr++];
        var Normals = tape[ptr++];
        var Closed = tape[ptr++];
        var CoordIndex = tape[ptr++];
        var PnIndex = tape[ptr++];
        var Flags = tape[ptr++];
        return new IfcTriangulatedIrregularNetwork(expressID, type, Coordinates, Normals, Closed, CoordIndex, PnIndex, Flags);
      }
    }]);

    return IfcTriangulatedIrregularNetwork;
  }();

  _exports.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork;

  var IfcTrimmedCurve = /*#__PURE__*/function () {
    function IfcTrimmedCurve(expressID, type, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {
      _classCallCheck(this, IfcTrimmedCurve);

      this.expressID = expressID;
      this.type = type;
      this.BasisCurve = BasisCurve;
      this.Trim1 = Trim1;
      this.Trim2 = Trim2;
      this.SenseAgreement = SenseAgreement;
      this.MasterRepresentation = MasterRepresentation;
    }

    _createClass(IfcTrimmedCurve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.BasisCurve);
        ;
        args.push(this.Trim1);
        ;
        args.push(this.Trim2);
        ;
        args.push(this.SenseAgreement);
        ;
        args.push(this.MasterRepresentation);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var BasisCurve = tape[ptr++];
        var Trim1 = tape[ptr++];
        var Trim2 = tape[ptr++];
        var SenseAgreement = tape[ptr++];
        var MasterRepresentation = tape[ptr++];
        return new IfcTrimmedCurve(expressID, type, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation);
      }
    }]);

    return IfcTrimmedCurve;
  }();

  _exports.IfcTrimmedCurve = IfcTrimmedCurve;

  var IfcTubeBundle = /*#__PURE__*/function () {
    function IfcTubeBundle(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcTubeBundle);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTubeBundle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTubeBundle(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcTubeBundle;
  }();

  _exports.IfcTubeBundle = IfcTubeBundle;

  var IfcTubeBundleType = /*#__PURE__*/function () {
    function IfcTubeBundleType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcTubeBundleType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcTubeBundleType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcTubeBundleType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcTubeBundleType;
  }();

  _exports.IfcTubeBundleType = IfcTubeBundleType;

  var IfcTypeObject = /*#__PURE__*/function () {
    function IfcTypeObject(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {
      _classCallCheck(this, IfcTypeObject);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
    }

    _createClass(IfcTypeObject, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        return new IfcTypeObject(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
      }
    }]);

    return IfcTypeObject;
  }();

  _exports.IfcTypeObject = IfcTypeObject;

  var IfcTypeProcess = /*#__PURE__*/function () {
    function IfcTypeProcess(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {
      _classCallCheck(this, IfcTypeProcess);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTypeProcess, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ProcessType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ProcessType = tape[ptr++];
        return new IfcTypeProcess(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
      }
    }]);

    return IfcTypeProcess;
  }();

  _exports.IfcTypeProcess = IfcTypeProcess;

  var IfcTypeProduct = /*#__PURE__*/function () {
    function IfcTypeProduct(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {
      _classCallCheck(this, IfcTypeProduct);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
    }

    _createClass(IfcTypeProduct, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcTypeProduct(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
      }
    }]);

    return IfcTypeProduct;
  }();

  _exports.IfcTypeProduct = IfcTypeProduct;

  var IfcTypeResource = /*#__PURE__*/function () {
    function IfcTypeResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {
      _classCallCheck(this, IfcTypeResource);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcTypeResource, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.Identification);
        ;
        args.push(this.LongDescription);
        ;
        args.push(this.ResourceType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var Identification = tape[ptr++];
        var LongDescription = tape[ptr++];
        var ResourceType = tape[ptr++];
        return new IfcTypeResource(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);
      }
    }]);

    return IfcTypeResource;
  }();

  _exports.IfcTypeResource = IfcTypeResource;

  var IfcUShapeProfileDef = /*#__PURE__*/function () {
    function IfcUShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {
      _classCallCheck(this, IfcUShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcUShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Depth);
        ;
        args.push(this.FlangeWidth);
        ;
        args.push(this.WebThickness);
        ;
        args.push(this.FlangeThickness);
        ;
        args.push(this.FilletRadius);
        ;
        args.push(this.EdgeRadius);
        ;
        args.push(this.FlangeSlope);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Depth = tape[ptr++];
        var FlangeWidth = tape[ptr++];
        var WebThickness = tape[ptr++];
        var FlangeThickness = tape[ptr++];
        var FilletRadius = tape[ptr++];
        var EdgeRadius = tape[ptr++];
        var FlangeSlope = tape[ptr++];
        return new IfcUShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope);
      }
    }]);

    return IfcUShapeProfileDef;
  }();

  _exports.IfcUShapeProfileDef = IfcUShapeProfileDef;

  var IfcUnitAssignment = /*#__PURE__*/function () {
    function IfcUnitAssignment(expressID, type, Units) {
      _classCallCheck(this, IfcUnitAssignment);

      this.expressID = expressID;
      this.type = type;
      this.Units = Units;
    }

    _createClass(IfcUnitAssignment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Units);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Units = tape[ptr++];
        return new IfcUnitAssignment(expressID, type, Units);
      }
    }]);

    return IfcUnitAssignment;
  }();

  _exports.IfcUnitAssignment = IfcUnitAssignment;

  var IfcUnitaryControlElement = /*#__PURE__*/function () {
    function IfcUnitaryControlElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcUnitaryControlElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcUnitaryControlElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcUnitaryControlElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcUnitaryControlElement;
  }();

  _exports.IfcUnitaryControlElement = IfcUnitaryControlElement;

  var IfcUnitaryControlElementType = /*#__PURE__*/function () {
    function IfcUnitaryControlElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcUnitaryControlElementType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcUnitaryControlElementType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcUnitaryControlElementType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcUnitaryControlElementType;
  }();

  _exports.IfcUnitaryControlElementType = IfcUnitaryControlElementType;

  var IfcUnitaryEquipment = /*#__PURE__*/function () {
    function IfcUnitaryEquipment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcUnitaryEquipment);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcUnitaryEquipment, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcUnitaryEquipment(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcUnitaryEquipment;
  }();

  _exports.IfcUnitaryEquipment = IfcUnitaryEquipment;

  var IfcUnitaryEquipmentType = /*#__PURE__*/function () {
    function IfcUnitaryEquipmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcUnitaryEquipmentType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcUnitaryEquipmentType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcUnitaryEquipmentType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcUnitaryEquipmentType;
  }();

  _exports.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;

  var IfcValve = /*#__PURE__*/function () {
    function IfcValve(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcValve);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcValve, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcValve(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcValve;
  }();

  _exports.IfcValve = IfcValve;

  var IfcValveType = /*#__PURE__*/function () {
    function IfcValveType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcValveType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcValveType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcValveType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcValveType;
  }();

  _exports.IfcValveType = IfcValveType;

  var IfcVector = /*#__PURE__*/function () {
    function IfcVector(expressID, type, Orientation, Magnitude) {
      _classCallCheck(this, IfcVector);

      this.expressID = expressID;
      this.type = type;
      this.Orientation = Orientation;
      this.Magnitude = Magnitude;
    }

    _createClass(IfcVector, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Orientation);
        ;
        args.push(this.Magnitude);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Orientation = tape[ptr++];
        var Magnitude = tape[ptr++];
        return new IfcVector(expressID, type, Orientation, Magnitude);
      }
    }]);

    return IfcVector;
  }();

  _exports.IfcVector = IfcVector;

  var IfcVertex = /*#__PURE__*/function () {
    function IfcVertex(expressID, type) {
      _classCallCheck(this, IfcVertex);

      this.expressID = expressID;
      this.type = type;
    }

    _createClass(IfcVertex, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        return new IfcVertex(expressID, type);
      }
    }]);

    return IfcVertex;
  }();

  _exports.IfcVertex = IfcVertex;

  var IfcVertexLoop = /*#__PURE__*/function () {
    function IfcVertexLoop(expressID, type, LoopVertex) {
      _classCallCheck(this, IfcVertexLoop);

      this.expressID = expressID;
      this.type = type;
      this.LoopVertex = LoopVertex;
    }

    _createClass(IfcVertexLoop, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.LoopVertex);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var LoopVertex = tape[ptr++];
        return new IfcVertexLoop(expressID, type, LoopVertex);
      }
    }]);

    return IfcVertexLoop;
  }();

  _exports.IfcVertexLoop = IfcVertexLoop;

  var IfcVertexPoint = /*#__PURE__*/function () {
    function IfcVertexPoint(expressID, type, VertexGeometry) {
      _classCallCheck(this, IfcVertexPoint);

      this.expressID = expressID;
      this.type = type;
      this.VertexGeometry = VertexGeometry;
    }

    _createClass(IfcVertexPoint, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.VertexGeometry);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var VertexGeometry = tape[ptr++];
        return new IfcVertexPoint(expressID, type, VertexGeometry);
      }
    }]);

    return IfcVertexPoint;
  }();

  _exports.IfcVertexPoint = IfcVertexPoint;

  var IfcVibrationDamper = /*#__PURE__*/function () {
    function IfcVibrationDamper(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcVibrationDamper);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcVibrationDamper, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcVibrationDamper(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcVibrationDamper;
  }();

  _exports.IfcVibrationDamper = IfcVibrationDamper;

  var IfcVibrationDamperType = /*#__PURE__*/function () {
    function IfcVibrationDamperType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcVibrationDamperType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcVibrationDamperType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcVibrationDamperType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcVibrationDamperType;
  }();

  _exports.IfcVibrationDamperType = IfcVibrationDamperType;

  var IfcVibrationIsolator = /*#__PURE__*/function () {
    function IfcVibrationIsolator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcVibrationIsolator);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcVibrationIsolator, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcVibrationIsolator(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcVibrationIsolator;
  }();

  _exports.IfcVibrationIsolator = IfcVibrationIsolator;

  var IfcVibrationIsolatorType = /*#__PURE__*/function () {
    function IfcVibrationIsolatorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcVibrationIsolatorType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcVibrationIsolatorType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcVibrationIsolatorType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcVibrationIsolatorType;
  }();

  _exports.IfcVibrationIsolatorType = IfcVibrationIsolatorType;

  var IfcVirtualElement = /*#__PURE__*/function () {
    function IfcVirtualElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
      _classCallCheck(this, IfcVirtualElement);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
    }

    _createClass(IfcVirtualElement, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        return new IfcVirtualElement(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
      }
    }]);

    return IfcVirtualElement;
  }();

  _exports.IfcVirtualElement = IfcVirtualElement;

  var IfcVirtualGridIntersection = /*#__PURE__*/function () {
    function IfcVirtualGridIntersection(expressID, type, IntersectingAxes, OffsetDistances) {
      _classCallCheck(this, IfcVirtualGridIntersection);

      this.expressID = expressID;
      this.type = type;
      this.IntersectingAxes = IntersectingAxes;
      this.OffsetDistances = OffsetDistances;
    }

    _createClass(IfcVirtualGridIntersection, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.IntersectingAxes);
        ;
        args.push(this.OffsetDistances);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var IntersectingAxes = tape[ptr++];
        var OffsetDistances = tape[ptr++];
        return new IfcVirtualGridIntersection(expressID, type, IntersectingAxes, OffsetDistances);
      }
    }]);

    return IfcVirtualGridIntersection;
  }();

  _exports.IfcVirtualGridIntersection = IfcVirtualGridIntersection;

  var IfcVoidingFeature = /*#__PURE__*/function () {
    function IfcVoidingFeature(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcVoidingFeature);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcVoidingFeature, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcVoidingFeature(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcVoidingFeature;
  }();

  _exports.IfcVoidingFeature = IfcVoidingFeature;

  var IfcWall = /*#__PURE__*/function () {
    function IfcWall(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcWall);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcWall, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWall(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcWall;
  }();

  _exports.IfcWall = IfcWall;

  var IfcWallElementedCase = /*#__PURE__*/function () {
    function IfcWallElementedCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcWallElementedCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcWallElementedCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWallElementedCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcWallElementedCase;
  }();

  _exports.IfcWallElementedCase = IfcWallElementedCase;

  var IfcWallStandardCase = /*#__PURE__*/function () {
    function IfcWallStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcWallStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcWallStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWallStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcWallStandardCase;
  }();

  _exports.IfcWallStandardCase = IfcWallStandardCase;

  var IfcWallType = /*#__PURE__*/function () {
    function IfcWallType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcWallType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcWallType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWallType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcWallType;
  }();

  _exports.IfcWallType = IfcWallType;

  var IfcWasteTerminal = /*#__PURE__*/function () {
    function IfcWasteTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
      _classCallCheck(this, IfcWasteTerminal);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.ObjectPlacement = ObjectPlacement;
      this.Representation = Representation;
      this.Tag = Tag;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcWasteTerminal, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWasteTerminal(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
      }
    }]);

    return IfcWasteTerminal;
  }();

  _exports.IfcWasteTerminal = IfcWasteTerminal;

  var IfcWasteTerminalType = /*#__PURE__*/function () {
    function IfcWasteTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
      _classCallCheck(this, IfcWasteTerminalType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ApplicableOccurrence = ApplicableOccurrence;
      this.HasPropertySets = HasPropertySets;
      this.RepresentationMaps = RepresentationMaps;
      this.Tag = Tag;
      this.ElementType = ElementType;
      this.PredefinedType = PredefinedType;
    }

    _createClass(IfcWasteTerminalType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWasteTerminalType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType);
      }
    }]);

    return IfcWasteTerminalType;
  }();

  _exports.IfcWasteTerminalType = IfcWasteTerminalType;

  var IfcWindow = /*#__PURE__*/function () {
    function IfcWindow(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {
      _classCallCheck(this, IfcWindow);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcWindow, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.OverallHeight);
        ;
        args.push(this.OverallWidth);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.PartitioningType);
        ;
        args.push(this.UserDefinedPartitioningType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var OverallHeight = tape[ptr++];
        var OverallWidth = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var PartitioningType = tape[ptr++];
        var UserDefinedPartitioningType = tape[ptr++];
        return new IfcWindow(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType);
      }
    }]);

    return IfcWindow;
  }();

  _exports.IfcWindow = IfcWindow;

  var IfcWindowLiningProperties = /*#__PURE__*/function () {
    function IfcWindowLiningProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {
      _classCallCheck(this, IfcWindowLiningProperties);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcWindowLiningProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.LiningDepth);
        ;
        args.push(this.LiningThickness);
        ;
        args.push(this.TransomThickness);
        ;
        args.push(this.MullionThickness);
        ;
        args.push(this.FirstTransomOffset);
        ;
        args.push(this.SecondTransomOffset);
        ;
        args.push(this.FirstMullionOffset);
        ;
        args.push(this.SecondMullionOffset);
        ;
        args.push(this.ShapeAspectStyle);
        ;
        args.push(this.LiningOffset);
        ;
        args.push(this.LiningToPanelOffsetX);
        ;
        args.push(this.LiningToPanelOffsetY);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var LiningDepth = tape[ptr++];
        var LiningThickness = tape[ptr++];
        var TransomThickness = tape[ptr++];
        var MullionThickness = tape[ptr++];
        var FirstTransomOffset = tape[ptr++];
        var SecondTransomOffset = tape[ptr++];
        var FirstMullionOffset = tape[ptr++];
        var SecondMullionOffset = tape[ptr++];
        var ShapeAspectStyle = tape[ptr++];
        var LiningOffset = tape[ptr++];
        var LiningToPanelOffsetX = tape[ptr++];
        var LiningToPanelOffsetY = tape[ptr++];
        return new IfcWindowLiningProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY);
      }
    }]);

    return IfcWindowLiningProperties;
  }();

  _exports.IfcWindowLiningProperties = IfcWindowLiningProperties;

  var IfcWindowPanelProperties = /*#__PURE__*/function () {
    function IfcWindowPanelProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
      _classCallCheck(this, IfcWindowPanelProperties);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcWindowPanelProperties, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.PanelPosition);
        ;
        args.push(this.FrameDepth);
        ;
        args.push(this.FrameThickness);
        ;
        args.push(this.ShapeAspectStyle);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var OperationType = tape[ptr++];
        var PanelPosition = tape[ptr++];
        var FrameDepth = tape[ptr++];
        var FrameThickness = tape[ptr++];
        var ShapeAspectStyle = tape[ptr++];
        return new IfcWindowPanelProperties(expressID, type, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle);
      }
    }]);

    return IfcWindowPanelProperties;
  }();

  _exports.IfcWindowPanelProperties = IfcWindowPanelProperties;

  var IfcWindowStandardCase = /*#__PURE__*/function () {
    function IfcWindowStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {
      _classCallCheck(this, IfcWindowStandardCase);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcWindowStandardCase, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.ObjectPlacement);
        ;
        args.push(this.Representation);
        ;
        args.push(this.Tag);
        ;
        args.push(this.OverallHeight);
        ;
        args.push(this.OverallWidth);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.PartitioningType);
        ;
        args.push(this.UserDefinedPartitioningType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var ObjectPlacement = tape[ptr++];
        var Representation = tape[ptr++];
        var Tag = tape[ptr++];
        var OverallHeight = tape[ptr++];
        var OverallWidth = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var PartitioningType = tape[ptr++];
        var UserDefinedPartitioningType = tape[ptr++];
        return new IfcWindowStandardCase(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType);
      }
    }]);

    return IfcWindowStandardCase;
  }();

  _exports.IfcWindowStandardCase = IfcWindowStandardCase;

  var IfcWindowStyle = /*#__PURE__*/function () {
    function IfcWindowStyle(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {
      _classCallCheck(this, IfcWindowStyle);

      this.expressID = expressID;
      this.type = type;
      this.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;
    }

    _createClass(IfcWindowStyle, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ConstructionType);
        ;
        args.push(this.OperationType);
        ;
        args.push(this.ParameterTakesPrecedence);
        ;
        args.push(this.Sizeable);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ConstructionType = tape[ptr++];
        var OperationType = tape[ptr++];
        var ParameterTakesPrecedence = tape[ptr++];
        var Sizeable = tape[ptr++];
        return new IfcWindowStyle(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable);
      }
    }]);

    return IfcWindowStyle;
  }();

  _exports.IfcWindowStyle = IfcWindowStyle;

  var IfcWindowType = /*#__PURE__*/function () {
    function IfcWindowType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {
      _classCallCheck(this, IfcWindowType);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.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;
    }

    _createClass(IfcWindowType, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ApplicableOccurrence);
        ;
        args.push(this.HasPropertySets);
        ;
        args.push(this.RepresentationMaps);
        ;
        args.push(this.Tag);
        ;
        args.push(this.ElementType);
        ;
        args.push(this.PredefinedType);
        ;
        args.push(this.PartitioningType);
        ;
        args.push(this.ParameterTakesPrecedence);
        ;
        args.push(this.UserDefinedPartitioningType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ApplicableOccurrence = tape[ptr++];
        var HasPropertySets = tape[ptr++];
        var RepresentationMaps = tape[ptr++];
        var Tag = tape[ptr++];
        var ElementType = tape[ptr++];
        var PredefinedType = tape[ptr++];
        var PartitioningType = tape[ptr++];
        var ParameterTakesPrecedence = tape[ptr++];
        var UserDefinedPartitioningType = tape[ptr++];
        return new IfcWindowType(expressID, type, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType);
      }
    }]);

    return IfcWindowType;
  }();

  _exports.IfcWindowType = IfcWindowType;

  var IfcWorkCalendar = /*#__PURE__*/function () {
    function IfcWorkCalendar(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {
      _classCallCheck(this, IfcWorkCalendar);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcWorkCalendar, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.WorkingTimes);
        ;
        args.push(this.ExceptionTimes);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var WorkingTimes = tape[ptr++];
        var ExceptionTimes = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWorkCalendar(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType);
      }
    }]);

    return IfcWorkCalendar;
  }();

  _exports.IfcWorkCalendar = IfcWorkCalendar;

  var IfcWorkControl = /*#__PURE__*/function () {
    function IfcWorkControl(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {
      _classCallCheck(this, IfcWorkControl);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcWorkControl, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.CreationDate);
        ;
        args.push(this.Creators);
        ;
        args.push(this.Purpose);
        ;
        args.push(this.Duration);
        ;
        args.push(this.TotalFloat);
        ;
        args.push(this.StartTime);
        ;
        args.push(this.FinishTime);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var CreationDate = tape[ptr++];
        var Creators = tape[ptr++];
        var Purpose = tape[ptr++];
        var Duration = tape[ptr++];
        var TotalFloat = tape[ptr++];
        var StartTime = tape[ptr++];
        var FinishTime = tape[ptr++];
        return new IfcWorkControl(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);
      }
    }]);

    return IfcWorkControl;
  }();

  _exports.IfcWorkControl = IfcWorkControl;

  var IfcWorkPlan = /*#__PURE__*/function () {
    function IfcWorkPlan(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {
      _classCallCheck(this, IfcWorkPlan);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcWorkPlan, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.CreationDate);
        ;
        args.push(this.Creators);
        ;
        args.push(this.Purpose);
        ;
        args.push(this.Duration);
        ;
        args.push(this.TotalFloat);
        ;
        args.push(this.StartTime);
        ;
        args.push(this.FinishTime);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var CreationDate = tape[ptr++];
        var Creators = tape[ptr++];
        var Purpose = tape[ptr++];
        var Duration = tape[ptr++];
        var TotalFloat = tape[ptr++];
        var StartTime = tape[ptr++];
        var FinishTime = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWorkPlan(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType);
      }
    }]);

    return IfcWorkPlan;
  }();

  _exports.IfcWorkPlan = IfcWorkPlan;

  var IfcWorkSchedule = /*#__PURE__*/function () {
    function IfcWorkSchedule(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {
      _classCallCheck(this, IfcWorkSchedule);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcWorkSchedule, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.Identification);
        ;
        args.push(this.CreationDate);
        ;
        args.push(this.Creators);
        ;
        args.push(this.Purpose);
        ;
        args.push(this.Duration);
        ;
        args.push(this.TotalFloat);
        ;
        args.push(this.StartTime);
        ;
        args.push(this.FinishTime);
        ;
        args.push(this.PredefinedType);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var Identification = tape[ptr++];
        var CreationDate = tape[ptr++];
        var Creators = tape[ptr++];
        var Purpose = tape[ptr++];
        var Duration = tape[ptr++];
        var TotalFloat = tape[ptr++];
        var StartTime = tape[ptr++];
        var FinishTime = tape[ptr++];
        var PredefinedType = tape[ptr++];
        return new IfcWorkSchedule(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType);
      }
    }]);

    return IfcWorkSchedule;
  }();

  _exports.IfcWorkSchedule = IfcWorkSchedule;

  var IfcWorkTime = /*#__PURE__*/function () {
    function IfcWorkTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) {
      _classCallCheck(this, IfcWorkTime);

      this.expressID = expressID;
      this.type = type;
      this.Name = Name;
      this.DataOrigin = DataOrigin;
      this.UserDefinedDataOrigin = UserDefinedDataOrigin;
      this.RecurrencePattern = RecurrencePattern;
      this.Start = Start;
      this.Finish = Finish;
    }

    _createClass(IfcWorkTime, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.Name);
        ;
        args.push(this.DataOrigin);
        ;
        args.push(this.UserDefinedDataOrigin);
        ;
        args.push(this.RecurrencePattern);
        ;
        args.push(this.Start);
        ;
        args.push(this.Finish);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var Name = tape[ptr++];
        var DataOrigin = tape[ptr++];
        var UserDefinedDataOrigin = tape[ptr++];
        var RecurrencePattern = tape[ptr++];
        var Start = tape[ptr++];
        var Finish = tape[ptr++];
        return new IfcWorkTime(expressID, type, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish);
      }
    }]);

    return IfcWorkTime;
  }();

  _exports.IfcWorkTime = IfcWorkTime;

  var IfcZShapeProfileDef = /*#__PURE__*/function () {
    function IfcZShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {
      _classCallCheck(this, IfcZShapeProfileDef);

      this.expressID = expressID;
      this.type = type;
      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;
    }

    _createClass(IfcZShapeProfileDef, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.ProfileType);
        ;
        args.push(this.ProfileName);
        ;
        args.push(this.Position);
        ;
        args.push(this.Depth);
        ;
        args.push(this.FlangeWidth);
        ;
        args.push(this.WebThickness);
        ;
        args.push(this.FlangeThickness);
        ;
        args.push(this.FilletRadius);
        ;
        args.push(this.EdgeRadius);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var ProfileType = tape[ptr++];
        var ProfileName = tape[ptr++];
        var Position = tape[ptr++];
        var Depth = tape[ptr++];
        var FlangeWidth = tape[ptr++];
        var WebThickness = tape[ptr++];
        var FlangeThickness = tape[ptr++];
        var FilletRadius = tape[ptr++];
        var EdgeRadius = tape[ptr++];
        return new IfcZShapeProfileDef(expressID, type, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius);
      }
    }]);

    return IfcZShapeProfileDef;
  }();

  _exports.IfcZShapeProfileDef = IfcZShapeProfileDef;

  var IfcZone = /*#__PURE__*/function () {
    function IfcZone(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {
      _classCallCheck(this, IfcZone);

      this.expressID = expressID;
      this.type = type;
      this.GlobalId = GlobalId;
      this.OwnerHistory = OwnerHistory;
      this.Name = Name;
      this.Description = Description;
      this.ObjectType = ObjectType;
      this.LongName = LongName;
    }

    _createClass(IfcZone, [{
      key: "ToTape",
      value: function ToTape() {
        var args = [];
        args.push(this.GlobalId);
        ;
        args.push(this.OwnerHistory);
        ;
        args.push(this.Name);
        ;
        args.push(this.Description);
        ;
        args.push(this.ObjectType);
        ;
        args.push(this.LongName);
        ;
        return args;
      }
    }], [{
      key: "FromTape",
      value: function FromTape(expressID, type, tape) {
        var ptr = 0;
        var GlobalId = tape[ptr++];
        var OwnerHistory = tape[ptr++];
        var Name = tape[ptr++];
        var Description = tape[ptr++];
        var ObjectType = tape[ptr++];
        var LongName = tape[ptr++];
        return new IfcZone(expressID, type, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName);
      }
    }]);

    return IfcZone;
  }(); // dist/web-ifc-api.ts


  _exports.IfcZone = IfcZone;
  var WebIFCWasm = require_web_ifc();
  var UNKNOWN = 0;
  _exports.UNKNOWN = UNKNOWN;
  var STRING = 1;
  _exports.STRING = STRING;
  var LABEL = 2;
  _exports.LABEL = LABEL;
  var ENUM = 3;
  _exports.ENUM = ENUM;
  var REAL = 4;
  _exports.REAL = REAL;
  var REF = 5;
  _exports.REF = REF;
  var EMPTY = 6;
  _exports.EMPTY = EMPTY;
  var SET_BEGIN = 7;
  _exports.SET_BEGIN = SET_BEGIN;
  var SET_END = 8;
  _exports.SET_END = SET_END;
  var LINE_END = 9;
  _exports.LINE_END = LINE_END;

  function ms() {
    return new Date().getTime();
  }

  var IfcAPI = /*#__PURE__*/function () {
    function IfcAPI() {
      _classCallCheck(this, IfcAPI);

      this.wasmModule = void 0;
      this.fs = void 0;
    }

    _createClass(IfcAPI, [{
      key: "Init",
      value: function Init() {
        return __async(this, null, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
          return regeneratorRuntime.wrap(function _callee$(_context) {
            while (1) {
              switch (_context.prev = _context.next) {
                case 0:
                  if (!WebIFCWasm) {
                    _context.next = 7;
                    break;
                  }

                  _context.next = 3;
                  return WebIFCWasm({
                    noInitialRun: true
                  });

                case 3:
                  this.wasmModule = _context.sent;
                  this.fs = this.wasmModule.FS;
                  _context.next = 8;
                  break;

                case 7:
                  console.error("Could not find wasm module at './web-ifc' from web-ifc-api.ts");

                case 8:
                case "end":
                  return _context.stop();
              }
            }
          }, _callee, this);
        }));
      }
    }, {
      key: "OpenModel",
      value: function OpenModel(data, settings) {
        this.wasmModule["FS_createDataFile"]("/", "filename", data, true, true, true);

        var s = __spreadValues({
          COORDINATE_TO_ORIGIN: false,
          USE_FAST_BOOLS: false,
          CIRCLE_SEGMENTS_LOW: 5,
          CIRCLE_SEGMENTS_MEDIUM: 8,
          CIRCLE_SEGMENTS_HIGH: 12
        }, settings);

        var result = this.wasmModule.OpenModel(s);
        this.wasmModule["FS_unlink"]("/filename");
        return result;
      }
    }, {
      key: "CreateModel",
      value: function CreateModel(settings) {
        var s = __spreadValues({
          COORDINATE_TO_ORIGIN: false,
          USE_FAST_BOOLS: false,
          CIRCLE_SEGMENTS_LOW: 5,
          CIRCLE_SEGMENTS_MEDIUM: 8,
          CIRCLE_SEGMENTS_HIGH: 12
        }, settings);

        var result = this.wasmModule.CreateModel(s);
        return result;
      }
    }, {
      key: "ExportFileAsIFC",
      value: function ExportFileAsIFC(modelID) {
        this.wasmModule.ExportFileAsIFC(modelID);
        var result = this.fs.readFile("/export.ifc");
        this.wasmModule["FS_unlink"]("/export.ifc");
        return result;
      }
    }, {
      key: "GetGeometry",
      value: function GetGeometry(modelID, geometryExpressID) {
        return this.wasmModule.GetGeometry(modelID, geometryExpressID);
      }
    }, {
      key: "GetLine",
      value: function GetLine(modelID, expressID) {
        var flatten = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
        var rawLineData = this.GetRawLineData(modelID, expressID);
        var lineData = FromRawLineData[rawLineData.type](rawLineData);

        if (flatten) {
          this.FlattenLine(modelID, lineData);
        }

        return lineData;
      }
    }, {
      key: "WriteLine",
      value: function WriteLine(modelID, lineObject) {
        var _this = this;

        Object.keys(lineObject).forEach(function (propertyName) {
          var property = lineObject[propertyName];

          if (property && property.expressID !== void 0) {
            _this.WriteLine(modelID, property);

            lineObject[propertyName] = {
              type: 5,
              value: property.expressID
            };
          } else if (Array.isArray(property) && property.length > 0) {
            for (var i = 0; i < property.length; i++) {
              if (property[i].expressID !== void 0) {
                _this.WriteLine(modelID, property[i]);

                lineObject[propertyName][i] = {
                  type: 5,
                  value: property[i].expressID
                };
              }
            }
          }
        });
        var rawLineData = {
          ID: lineObject.expressID,
          type: lineObject.type,
          arguments: lineObject.ToTape()
        };
        this.WriteRawLineData(modelID, rawLineData);
      }
    }, {
      key: "FlattenLine",
      value: function FlattenLine(modelID, line) {
        var _this2 = this;

        Object.keys(line).forEach(function (propertyName) {
          var property = line[propertyName];

          if (property && property.type === 5) {
            line[propertyName] = _this2.GetLine(modelID, property.value, true);
          } else if (Array.isArray(property) && property.length > 0 && property[0].type === 5) {
            for (var i = 0; i < property.length; i++) {
              line[propertyName][i] = _this2.GetLine(modelID, property[i].value, true);
            }
          }
        });
      }
    }, {
      key: "GetRawLineData",
      value: function GetRawLineData(modelID, expressID) {
        return this.wasmModule.GetLine(modelID, expressID);
      }
    }, {
      key: "WriteRawLineData",
      value: function WriteRawLineData(modelID, data) {
        return this.wasmModule.WriteLine(modelID, data.ID, data.type, data.arguments);
      }
    }, {
      key: "GetLineIDsWithType",
      value: function GetLineIDsWithType(modelID, type) {
        return this.wasmModule.GetLineIDsWithType(modelID, type);
      }
    }, {
      key: "GetAllLines",
      value: function GetAllLines(modelID) {
        return this.wasmModule.GetAllLines(modelID);
      }
    }, {
      key: "SetGeometryTransformation",
      value: function SetGeometryTransformation(modelID, transformationMatrix) {
        if (transformationMatrix.length != 16) {
          console.log("Bad transformation matrix size: ".concat(transformationMatrix.length));
          return;
        }

        this.wasmModule.SetGeometryTransformation(modelID, transformationMatrix);
      }
    }, {
      key: "GetVertexArray",
      value: function GetVertexArray(ptr, size) {
        return this.getSubArray(this.wasmModule.HEAPF32, ptr, size);
      }
    }, {
      key: "GetIndexArray",
      value: function GetIndexArray(ptr, size) {
        return this.getSubArray(this.wasmModule.HEAPU32, ptr, size);
      }
    }, {
      key: "getSubArray",
      value: function getSubArray(heap, startPtr, sizeBytes) {
        return heap.subarray(startPtr / 4, startPtr / 4 + sizeBytes).slice(0);
      }
    }, {
      key: "CloseModel",
      value: function CloseModel(modelID) {
        this.wasmModule.CloseModel(modelID);
      }
    }, {
      key: "StreamAllMeshes",
      value: function StreamAllMeshes(modelID, meshCallback) {
        this.wasmModule.StreamAllMeshes(modelID, meshCallback);
      }
    }, {
      key: "IsModelOpen",
      value: function IsModelOpen(modelID) {
        return this.wasmModule.IsModelOpen(modelID);
      }
    }, {
      key: "LoadAllGeometry",
      value: function LoadAllGeometry(modelID) {
        return this.wasmModule.LoadAllGeometry(modelID);
      }
    }, {
      key: "GetFlatMesh",
      value: function GetFlatMesh(modelID, expressID) {
        return this.wasmModule.GetFlatMesh(modelID, expressID);
      }
    }, {
      key: "SetWasmPath",
      value: function SetWasmPath(path) {
        WasmPath = path;
      }
    }]);

    return IfcAPI;
  }();

  _exports.IfcAPI = IfcAPI;
  var WasmPath = "";
});